Как вы присоединяете список к словарю списков в качестве нового элемента - python? - PullRequest
1 голос
/ 12 апреля 2019

Может быть, простой вопрос:

В python у меня есть список словарей, и я хочу добавить список как новый элемент в каждый словарь в списке?

Например, у меня есть список словарей:

list_dict =[{'id':1, 'text':'John'},
            {'id':2, 'text':'Amy'},
            {'id':3, 'text':'Ron'}]

И список:

list_age = [23, 54, 41]

Как я мог тогда добавить список, чтобы создать список словарей:

list_dict =[{'id':1, 'text':'John', 'age':23},
            {'id':2, 'text':'Amy', 'age':54},
            {'id':3, 'text':'Ron', 'age':41}]

Я не уверен в правильности кода для использования здесь?

Ответы [ 4 ]

3 голосов
/ 12 апреля 2019

Используйте zip, чтобы выполнить итерацию по соответствующим парам и обновить данные:

>>> for d, a in zip(list_dict, list_age):
...     d["age"] = a
... 
>>> list_dict
[{'id': 1, 'text': 'John', 'age': 23}, {'id': 2, 'text': 'Amy', 'age': 54}, {'id': 3, 'text': 'Ron', 'age': 41}]
2 голосов
/ 12 апреля 2019

Примерно так может работать

for index, item in enumerate(list_age):
  list_dict[index]['age'] = item

Редактировать: Как уже упоминалось @ Netwave , вы должны убедиться, что len(list_age) не больше len(list_dict).

2 голосов
/ 12 апреля 2019

Попробуйте этот цикл, если list_age и list_dict имеют одинаковую длину:

for i, j in zip(list_dict, list_age):
  i['age']=j

ВЫХОД :

[{'id': 1, 'text': 'John', 'age': 23}, {'id': 2, 'text': 'Amy', 'age': 54}, {'id': 3, 'text': 'Ron', 'age': 41}]
0 голосов
/ 07 июня 2019

Добавить список для создания списка словарей:

for a, b in zip(list_dict, list_englishmark):
    a["englishmark"] = b

print(list_dict)

Выход:

[{'id': 1, 'name': 'mari', 'englishmark': 80}, {'id': 2, 'name': 'Arun', 'englishmark': 54}, {' id ': 3,' name ':' ram ',' englishmark ': 75}]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...