у меня есть этот сценарийсписок питон кортежей в список из dicts для использования csv.dictwriter
x=['a','b','c'] #Header
y=[(1,2,3),(4,5,6)] #data
Мне нужно создать структуру ниже
[{'a':1, 'b':2, 'c':3}, {'a':4, 'b':5, 'c':6}]
Любой лучший способ сделать это (подобно питон специалист)
rows=[]
for row in range(0,len(y)):
rec={}
for col in range(0, len(x)):
rec[x[col]]=y[row][col]
rows.append(rec)
print(rows)
выше кода даст желаемый результат, но я ищу один лайнер решения некоторых вещей как показано ниже
rows=list(({x[col]:y[row][col]} for row in range(0,len(y)) for col in range(0, len(x))))
выход:
[{'a': 1}, {'b': 2}, {'c': 3}, {'a': 4}, {'b': 5}, {'c': 6}]
, но это дает список как индивидуальный ДИКТ, а не в сочетании Dict. Есть идеи???
Почему генератор? понимание списка делает то, что требуется: '[dict (zip (x, v)) для v в y]' – f5r5e5d
Я уверен, что генератор в случае, если OP имеет большой набор данных и хотел бы оптимизировать эффективность памяти. в противном случае нет проблемы – Parousia
@ f5r5e5d Добавлена возможность выражения выражения генератора для ответа – niemmi