Преобразовать список списков в список словарей по порядку элементов в подсписке - PullRequest
0 голосов
/ 11 сентября 2018

Я хотел бы преобразовать свой список списков в список словарей. Значения первого списка должны быть моими ключами, а все остальные должны рассматриваться как значения.

Например:

[['a','b','c'],[1,2,3],[4,5,6],[7,8,9]]

следует преобразовать в

[{'a':[1,4,7]}, {'b': [2,5,8]},{'b': [3,6,9]}]

Я нашел это но мне это не помогло ..

Любая помощь будет принята с благодарностью. Спасибо

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Использование списка с распаковкой последовательности:

L = [['a','b','c'],[1,2,3],[4,5,6],[7,8,9]]

res = [{names: nums} for names, *nums in zip(*L)]

print(res)

[{'a': [1, 4, 7]}, {'b': [2, 5, 8]}, {'c': [3, 6, 9]}]
0 голосов
/ 11 сентября 2018
a=[['a','b','c'],[1,2,3],[4,5,6],[7,8,9]]  
dictionary_values=[dict([(a[0][i],list(zip(*a[1:])[i])) for i in range (len(a)-1)])]

выход:

[{'a': [1, 4, 7], 'b': [2, 5, 8], 'c': [3, 6, 9]}]
0 голосов
/ 11 сентября 2018

Используйте zip для преобразования вашего массива в [('a', 1, 4, 7), ...]; выдвиньте первый элемент как ключ, а остальные укажите как значение.

arr = [['a','b','c'],[1,2,3],[4,5,6],[7,8,9]]
[{ e[0]: list(e[1:])} for e in zip(*arr)]
# => [{'a': [1, 4, 7]}, {'b': [2, 5, 8]}, {'c': [3, 6, 9]}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...