【问题标题】:Extracting values from nested list/tuple/dictionary从嵌套列表/元组/字典中提取值
【发布时间】:2016-06-12 11:16:34
【问题描述】:

这是一个列表,原来是字典,由于排序而被转换;

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]。但我无法确定我想要的数据并不断收到“解包”错误消息。

【问题讨论】:

  • 您的问题是什么?如果您希望我们帮助您编写代码,您应该向我们展示您为解决此问题而编写的代码,以及它如何无法按预期工作。此外,您所说的所需输出与您的描述不符。比如value1和value2呢?
  • 我编辑了你的输出。您真的希望“关键”行与“设置”行分开吗?如果没有,只需重新编辑所需的输出。
  • @Tim Pietzcker 我已经编辑过了。我还是 python 新手,确实尝试过一段时间,抱歉我的经验不足。

标签: python list dictionary nested


【解决方案1】:

以下假设您的订单永远不会改变。

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]

【讨论】:

  • 非常感谢。由于key1 的某些原因,它显示set2 4 而不是set1 5。对于其他键(或键),它显示第一个设置值很好。
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 2023-02-04
  • 1970-01-01
相关资源
最近更新 更多