Как перебрать список словарей? - PullRequest
0 голосов
/ 30 октября 2019

Графический запрос приводит к списку списков словарей. Как я могу перебирать словари?

Мои данные ввода выглядят так:

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 голосов
/ 30 октября 2019

Поскольку у вас есть вложенный список, первый элемент - это просто другой список. Так что вместо этого вам нужно пройти через это. Вы

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...