如何遍历词典列表?

时间:2019-10-30 14:40:45

标签: python-3.x list dictionary

  

图形查询会生成字典列表列表。如何遍历字典?

我的输入数据如下:

my_list = [[{'name': 'John', 'id': 4, 'label': ['person']}, {'name': 'Peter', 'id': 20, 'label': ['bot']}, {'name': 'Lili', 'id': 24, 'label': ['person']}]]

我尝试过:

my_new_list = [x[0] for x in my_list]

但是,它只会产生另一个列表,里面只有一个字典-第一个:

[{'name': 'John', 'id': 4, 'label': ['person']}, {'name': 'Peter', 'id':20, 'label': ['bot']}, {'name': 'Lili', 'id': 24, 'label': ['person']}]

我的最终目标是遍历字典并根据标签有条件地附加键和值('image': image_source)。 我只想收到一个可以迭代的字典列表,而不是一个字典列表。

1 个答案:

答案 0 :(得分:0)

由于您有嵌套列表,因此第一个元素就是另一个列表。因此,您需要遍历那个。你

my_new_list = [x for x in my_list[0]]

但这与仅将my_new_list设置为my_list中的第一个元素相同:

my_new_list = my_list[0]
my_other_new_list = [x for x in my_list[0]]
my_new_list == my_other_new_list # True

然后您可以遍历my_new_list以访问列表中的所有字典。

everyone_named_john = [x for x in my_list[0] if x['name'] == 'John']
everyone_named_john = [x for x in my_new_list if x['name'] == 'John']