Найти - Пользователи
Полная версия: Пронумеровать словари и сложить их в словарь
Начало » Python для новичков » Пронумеровать словари и сложить их в словарь
1
rumba
Я имею два списка
keys = ['key0', 'key1', 'key2']
values = [('value0', 'value1', 'value2'), ('value0', 'value1', 'value2'), ('value0', 'value1', 'value2')]
и в результате такого цикла
for value in values:
    print dict(zip(keys, value))
получаю такой результат
{'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}
{'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}
{'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}
Подскажите, пожалуйста, как мне его еще пронумеровать и сложить в один общий словарь, чтобы получить такой результат:
{
1: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'},
2: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'},
3: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}
}
Я пробую и дальше использовать zip() вместе с dict(), но у меня получается что-то не то и голова уже от этих всех вложенностей закипает. Помогите кто чем может
Romiss
Предлагаю так:
keys = ['key0', 'key1', 'key2']
values = [('value0', 'value1', 'value2'), ('value0', 'value1', 'value2'), ('value0', 'value1', 'value2')]
new_dict = {}
n = 1
for value in values:
    new_dict[n] = dict(zip(keys, value))
    n += 1
rumba
Romiss, не знал что можно так. спасибо, очень познавательная реализация для меня.
Budulianin
rumba
как мне его еще пронумеровать и сложить в один общий словарь
Легко
dict(enumerate(map(lambda x: dict(zip(keys, x)), values), 1))
rumba
Да-да, знаю такое: сейчас подтянутся остальные функциональщики и начнут мериться скобками
В любом случае, это круто, но для моего сознания пока сложновато.
py.user.next
>>> keys = ['key0', 'key1', 'key2']
>>> values = [('value0', 'value1', 'value2'), ('value0', 'value1', 'value2'), ('value0', 'value1', 'value2')]
>>> 
>>> g = (dict(zip(keys, value)) for value in values)
>>> d = dict(enumerate(g, 1))
>>> d
{1: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}, 2: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}, 3: {'key2': 'value2', 'key1': 'value1', 'key0': 'value0'}}
>>>

разделил, чтобы читалось лучше
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB