为了账号安全,请及时绑定邮箱和手机立即绑定

根据子列表中项目的顺序将列表列表转换为字典列表

根据子列表中项目的顺序将列表列表转换为字典列表

回首忆惘然 2021-06-08 01:05:58
我想将我的列表列表转换为字典列表。第一个列表的值应该是我的键,其余的都应该被视为值。例如:[['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 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

用于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]}]


查看完整回答
反对 回复 2021-06-15
?
jeck猫

TA贡献1909条经验 获得超7个赞

使用带有序列解包的列表推导式:


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]}]


查看完整回答
反对 回复 2021-06-15
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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]}]


查看完整回答
反对 回复 2021-06-15
  • 3 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信