2016-01-22 3 views
1

У меня есть два разных списка, и мне нужно, чтобы они отображались вот так. Я чувствую, что я рядом, но программа не работает. Кроме того, версия с zip не будет работать для меня здесь.Как создать словарь из двух списков?

>>> list_to_dict(["a", "b"], ["13", "7" ]) 
{ "a": "13", "b": "7" } 

Вот что я сейчас:

def lists_to_dict(): 
    x = ['a', 'b'] 
    y = ['13', '7'] 
    d = {} 
    for i in range(len(x)): 
     d[x[i]] = y[i] 
    return d 

lists_to_dict() 
+1

Почему не зип работу? –

+1

Этот код работает. Если вместо жесткого кодирования вы выполняете параметры 'x' и' y', а затем передавайте их, как вы делаете выше, он также будет работать. Что с этим не так? – TigerhawkT3

+0

Параметры жесткого кодирования помогли мне решить проблему. Спасибо –

ответ

4

dict(zip(x,y)) должны быть все, что вам нужно.

+1

Я думаю, вы имеете в виду 'dict (zip (x, y))'. – TigerhawkT3

+0

Я сделал! Спасибо большое –

-1
>>> a = ["a", "b"] 
>>> b = ["13", "7" ] 
>>> print dict(zip(a,b)) 
{'a': '13', 'b': '7'} 
>>> 
+0

Пожалуйста, добавьте некоторое объяснение! –

0

же зип-менее решение, что это время метался переупаковываются как постижение:

def lists_to_dict(k, v): 
    return { k[i]: v[i] for i in range(min(len(k), len(v))) } 

>>> lists_to_dict(['a', 'b'], [13, 7]) 
{'a': 13, 'b': 7} 
Смежные вопросы