Конвертировать два списка в словарь в Python - PullRequest
969 голосов
/ 16 октября 2008

Представьте, что у вас есть:

keys = ['name', 'age', 'food']
values = ['Monty', 42, 'spam']

Какой самый простой способ создать следующий словарь?

a_dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'}

Ответы [ 16 ]

2 голосов
/ 07 июня 2019

привет, это для тех, кому нужен простой код:

List1 = ['This', 'is', 'a', 'list']
List2 = ['Put', 'this', 'into', 'dictionary']

Это можно сделать одной строкой кода:

var = {List1[n]: List2[n] for n in range(len(List1))}
1 голос
/ 26 февраля 2019
keys = ['name', 'age', 'food']
values = ['Monty', 42, 'spam']
new_dict = dict(zip(keys,values))
print(new_dict)
1 голос
/ 20 февраля 2019

Вот также пример добавления значения списка в вашем словаре

list1 = ["Name", "Surname", "Age"]
list2 = [["Cyd", "JEDD", "JESS"], ["DEY", "AUDIJE", "PONGARON"], [21, 32, 47]]
dic = dict(zip(list1, list2))
print(dic)

всегда проверяйте, чтобы ваш "Ключ" (list1) всегда был в первом параметре.

{'Name': ['Cyd', 'JEDD', 'JESS'], 'Surname': ['DEY', 'AUDIJE', 'PONGARON'], 'Age': [21, 32, 47]}
1 голос
/ 21 ноября 2018

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

a_dict={key:value for key,value in zip(keys,values)}

и это все. Наслаждайтесь Python .....;)

1 голос
/ 16 ноября 2017

Вы можете использовать этот код ниже:

dict(zip(['name', 'age', 'food'], ['Monty', 42, 'spam']))

Но убедитесь, что длина списков будет одинаковой. Если длина не одинакова. Затем функция zip перевернет длинную.

0 голосов
/ 24 мая 2017

метод без функции zip

l1 = [1,2,3,4,5]
l2 = ['a','b','c','d','e']
d1 = {}
for l1_ in l1:
    for l2_ in l2:
        d1[l1_] = l2_
        l2.remove(l2_)
        break  

print (d1)


{1: 'd', 2: 'b', 3: 'e', 4: 'a', 5: 'c'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...