У меня есть словарь списков, и я хочу объединить их в один список namedtuples. Я хочу, чтобы первый элемент всех списков в первом кортеже, второй во втором и т. Д.«Zip» словарь списков в Python
Пример:
{'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key3': [7, 8, 9]}
И я хочу полученный список, чтобы быть похожим на это:
[('key1': 1, 'key2': 4, 'key3': 7),
('key1': 2, 'key2': 5, 'key3': 8),
('key1': 3, 'key2': 6, 'key3': 9)]
Я предполагаю, что есть элегантный способ сделать это?
Edit:
я сравнил работы времена namedtuple ответа @Steve Джессоп к словарной версии по @Ashwini Чаудхари и бывший несколько быстрее:
d = {key: numpy.random.random_integers(0, 10000, 100000)
for key in ['key1', 'key2', 'key3']}
Avg. 100 трасс:
namedtuple and map: 0.093583753109
namedtuple and zip: 0.119455988407
dictionary and zip: 0.159063346386
Словари - не отсортированные структуры данных. Вы что-то пробовали? – msvalkon
Обновлен вопрос, а точнее. На самом деле я еще ничего не пробовал ... – rongved