【问题标题】:How to create List of dictionaries from two list如何从两个列表创建字典列表
【发布时间】:2022-08-03 11:20:14
【问题描述】:
x = ['a', 'b', 'c']
y= [[1,2,3],[4,5,6],[7,8,9]]

我想创建一个字典列表,这样 x 和 y 值就会像这样对应:

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

【问题讨论】:

  • 快速而肮脏的单行是:[{k:v for k, v in zip(x, yy)} for yy in y]

标签: python list dictionary


【解决方案1】:

您可以使用 zip 从两个列表创建字典:dict(zip(keys, values))

out = [dict(zip(x, l)) for l in y]

【讨论】:

  • 使用 dict(zip(a,b)) 而不是 {k:v for k,v in zip(a,b)} 的好处。
【解决方案2】:

您可以使用列表理解和枚举来做到这一点,它将在每次 y 迭代时从 x 列表中获取相应的值:
print([{x[inx]: z for inx, z in enumerate(i)} for i in y])
输出
[{'a': 1, 'b': 2, 'c': 3}, {'a': 4, 'b': 5, 'c': 6}, {'a': 7, 'b': 8, 'c': 9}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 2018-12-17
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2019-11-29
    相关资源
    最近更新 更多