Как создать словари из нескольких списков?

У меня есть следующие списки:

valuevalues = [4, 5, 35, 23, 16, 7, 12]
labelvalues = ['john', 'joe', 'Pier', 'Paul', 'Moe', 'Jane', 'Ruth']
labels = ['label' for i in range(len(valuevalues))]
values = ['value' for i in range(len(valuevalues))]

И я хотел бы создать следующие словари:

[{'label': 'john', 'value':4},
 {'label': 'joe', 'value':5},
 {'label': 'Pier', 'value':35},
 ...
 {'label': 'Ruth', 'value':12}]

Какой цикл или функцию следует использовать?

Почему в 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
0
69
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Используйте zip и следующее понимание:

[{"label": l, "value": v} for l, v in zip(labelvalues, valuevalues)]
# [{'label': 'john', 'value': 4}, {'label': 'joe', 'value': 5}, 
#  {'label': 'Pier', 'value': 35}, {'label': 'Paul', 'value': 23}, 
#  {'label': 'Moe', 'value': 16}, {'label': 'Jane', 'value': 7}, 
#  {'label': 'Ruth', 'value': 12}]

Обычно считается хорошей идеей сначала опубликовать свою попытку.

В любом случае, то, что вы ищете, это:

result = [{'label': label, 'value': value} for label, value in zip(labelvalues, valuevalues)]

Спасибо за совет и решение. Мои попытки были слишком далеки от решения, чтобы быть интересными...

crocefisso 24.12.2020 16:26

Тем не менее, вы можете опубликовать сообщение, чтобы люди знали, что вы пытались. Или, может быть, они смогут направить вас, чтобы вы узнали что-то новое.

go2nirvana 24.12.2020 16:28

Попробуй это

a = [4, 5, 35, 23, 16, 7, 12]
b = ['john', 'joe', 'Pier', 'Paul', 'Moe', 'Jane', 'Ruth']
c = []

for x,y in zip(a, b):
    m = {'label':y, 'value':x}
    c.append(m)
print(c)

Выход:

[{'label': 'john', 'value': 4}, {'label': 'joe', 'value': 5}, {'label': 'Pier', 'value': 35}, {'label': 'Paul', 'value': 23}, {'label': 'Moe', 'value': 16}, {'label': 'Jane', 'value': 7}, {'label': 'Ruth', 'value': 12}]
listofdicts = [{'label':j,'value':i} for i,j in zip(valuevalues,labelvalues)]

Список меток и значений является избыточным.

Не знал, что кто-то другой опубликовал тот же ответ, лол.

bboyenergetic 24.12.2020 16:25

Попробуйте это решение:

[{labels[i]:labelvalues[i],values[i]:valuevalues[i]} for i in range(len(valuevalues))]

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