嵌套字典的列表理解

时间:2019-06-08 22:25:28

标签: python python-3.x

我有一个像这样的python字典:

tt={'plot1':[
      {'var': 'ok__you', 'uuid': '98782098109'},
      {'var': 'hdg__akj', 'uuid': '712837901'}
      ], 
    'plot2': [
      {'var': 'ok__you2', 'uuid': '987820981092'},
      {'var': 'hdg__akj2', 'uuid': '7128379012'}
    ]}

我正在尝试将所有uuids放入一个列表中,所以,我这样做了:

lst=[v_i['uuid'] for v_i in value for key,value in tt.items()]

我被抛出:

NameError: name 'value' is not defined

我不知道为什么会这样-我在value迭代中指定了tt.items()-不知道为什么会抛出此错误?

会喜欢任何提示!

1 个答案:

答案 0 :(得分:2)

您交换了两个for循环的顺序

lst=[v_i['uuid'] for key,value in tt.items() for v_i in value]

输出将是

['98782098109', '712837901', '987820981092', '7128379012']

此外,由于您没有使用键,因此可以迭代字典的值

lst=[v_i['uuid'] for value in tt.values() for v_i in value]