Назначить значения списка словарям

У меня есть список prices:

prices = [0.9986, 0.8065, -0.1779, 0.8065]

и список словарей mydicts:

mydicts = [{'name':'Food1'}, {'name':'Food2'}, {'name':'Food3'}, {'name':'Food4'}]

Теперь мне нужно передать каждый элемент цены как значение для ключа price в каждом словаре, это будет результат:

mydicts = [
    {'name':'Food1', 'price':0.9986}, 
    {'name':'Food2', 'price':0.8065}, 
    {'name':'Food3', 'price':-0.1779}, 
    {'name':'Food4', 'price':0.8065}
    ]

Для этого я перебираю список и список словарей и присваиваю каждое значение списка словарю:

for price, dictionary in zip(prices, mydicts):
    dictionary['price'] = price

Мне было интересно, есть ли более эффективный способ сделать это. В моем случае мне нужно присвоить множество значений списку словарей, и я не уверен, что это самый эффективный способ.

Нет, насколько я понимаю, это настолько эффективно, насколько это возможно.

AKX 23.12.2020 19:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
1
127
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В вашем решении нет ничего плохого. Это O(n), максимально эффективное, простое и короткое.

И я понимаю, что если бы мне нужно было назначить несколько списков вместо одного, как в моем первоначальном вопросе, было бы более эффективно сделать все это в одном цикле, верно? Чтобы по-прежнему быть O (n)

Stack 23.12.2020 21:18

Вы говорите о добавлении в диктофоны списков типа prices, верно? Если это так, то да, было бы эффективнее сделать это в одном цикле, чем в нескольких. Вы бы просто добавили их в zip.

wjandrea 23.12.2020 21:56

Отлично, это то, что я искал :)

Stack 23.12.2020 22:02

Нет ничего более эффективного, чем подход O(n), поскольку вам нужно коснуться каждого индекса, чтобы создать каждый элемент.

Другие вопросы по теме