2016-06-12 183 views
-1

以下列表最初是由于排序而转换的字典;从嵌套列表/元组/字典中提取值

list1 = [ 
      ('key1', {'count': 10, 'value1': Counter({'set1': 5, 'set2': 4, 'set3': 1})}), 
      ('key2', {'count': 8, 'value2': Counter({'set1': 6, 'set2': 2})}), 
      ('key3', {'count': 7, 'value3': Counter({'set1': 5, 'set2': 2, 'set3': 1})}) 
     ] 

我想要得到的是前两个“关键”每个键的对象(其计数一起),而第一个“值”对象(连同其计数)。例如,我试图获得一个打印输出;

key1 10 
set1 5 

key2 8 
set1 6 

编辑:这是我已经尝试过(并与玩弄);

for key, value in sorted_x: 
    print key, value - only gives key/value as a whole 
for key, value in sorted_x: 
    print key, value[0] - gives keyerror. I've tried a few variations including nested loops. 
for key, value in sorted_x.iteritems(): 
    print key, value 

我试过做嵌套循环,试图获得部分列表[1]。但是我一直无法确定我想要的数据并不断收到错误信息。

+1

你的问题是什么?如果您希望我们用您的代码来帮助您,您应该向我们展示您为解决此问题而编写的代码,以及它如何不按预期工作。此外,您所要求的输出与您的描述不符。例如'value1'和'value2'呢? –

+0

我编辑了你的输出。你真的希望“关键”行与“设置”行分开吗?如果没有,只需重新编辑所需的输出。 –

+0

@Tim Pietzcker我编辑过。我仍然对python很感兴趣,并尝试过玩一段时间,对于我的缺乏经验感到抱歉。 – user1165419

回答

0

以下内容假设您的订单从不改变。

def get_stuff(list): 
    for i in list[:2]: 
     print i[0], i[1].values()[0] 
     print i[1].values()[1].keys()[0], i[1].values()[1].values()[0] 
+0

非常感谢。出于某种原因,'key1',它显示'set2 4'而不是'set1 5'。对于其他键(或键),它显示第一个设定值正确。 – user1165419