2014-10-30 5 views
0

Я новичок в этом, и у меня есть некоторые проблемы, которые заканчивают часть моей домашней работы. в основном у меня есть 2 списка:создать диктатор из двух списков

names = ["Jerry", "Fernando", "Radu", "Juan", "Brie", "Dani", "Fallon", "Nina", "Max", "Mike", "Johnny", "Saul", "Simon", "Billy"] 
ages = [27, 27, 23, 27, 27, 23, 33, 32, 25, 32, 26, 26, 29, 24] 

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

{'Jerry': {'age': 27}, 
'Fernando': {'age': 27}, 
# ... 
'Billy': {'age': 24}, 
} 

Я использовал кортежи, чтобы отобразить его, как этот [('Jerry', 27), ('Fernando', 27), ..., ('Billy', 24)], но я не могу понять как отображать его в словаре с каждым ключом, значение на новой строке.

ответ

1

Вы могли пронестись его:

dict(zip(names, ({'age': a} for a in ages))) 
+0

* Обратите внимание, это будет удалено, за исключением @abarnert думал, что это было полезно чтобы увидеть это так. Если бы я был ОП, я бы ответил Мартином :-) – mgilson

4

Используйте словарь понимания:

{name: {'age': age} for name, age in zip(names, ages)} 

Демо:

>>> from pprint import pprint 
>>> names = ["Jerry", "Fernando", "Radu", "Juan", "Brie", "Dani", "Fallon", "Nina", "Max", "Mike", "Johnny", "Saul", "Simon", "Billy"] 
>>> ages = [27, 27, 23, 27, 27, 23, 33, 32, 25, 32, 26, 26, 29, 24] 
>>> {name: {'age': age} for name, age in zip(names, ages)} 
{'Mike': {'age': 32}, 'Simon': {'age': 29}, 'Johnny': {'age': 26}, 'Max': {'age': 25}, 'Juan': {'age': 27}, 'Jerry': {'age': 27}, 'Fernando': {'age': 27}, 'Nina': {'age': 32}, 'Billy': {'age': 24}, 'Radu': {'age': 23}, 'Dani': {'age': 23}, 'Fallon': {'age': 33}, 'Brie': {'age': 27}, 'Saul': {'age': 26}} 
>>> pprint(_) 
{'Billy': {'age': 24}, 
'Brie': {'age': 27}, 
'Dani': {'age': 23}, 
'Fallon': {'age': 33}, 
'Fernando': {'age': 27}, 
'Jerry': {'age': 27}, 
'Johnny': {'age': 26}, 
'Juan': {'age': 27}, 
'Max': {'age': 25}, 
'Mike': {'age': 32}, 
'Nina': {'age': 32}, 
'Radu': {'age': 23}, 
'Saul': {'age': 26}, 
'Simon': {'age': 29}} 
+0

derp. ваш лучше :-) – mgilson

+0

@mgilson: Я думаю, что это полезно увидеть и здесь. Вероятно, я бы написал в этом случае Мартейн, но в большем случае, когда было несколько шагов на пути к трансформации, вы часто заканчиваете тем, что вставляете ключи и значения и вызываете 'dict' в конце , – abarnert

+0

@mgilson: Я удивляюсь, как часто люди забывают о понимании словаря. Опять же, я часто забываю о кормлении корневых ключей ключом к 'dict()'! –