字典/列表理解,用于将新的dict值从列表分配给预定义的键

时间:2018-05-29 18:26:39

标签: python python-3.x dictionary-comprehension

我有2个包含字符串的列表(如果在这里有所不同,它们也可以改为设置):

names = ['abc' , 'xyz' , 'foo']
ids = ['1234' , '5678' , '9101']

列表中的项目数量会有所不同,但每个列表将始终具有完全相同的项目数量且少于十几个。我需要从这些列表中创建一个字典output,并将列表项分配为结构列表中的值,如下所示:

[{'name' : 'abc', 'id' : '1234'},
 {'name' : 'xyz', 'id' : '5678'},
 {'name' : 'foo', 'id' : '9101'}]

对于此函数而言,值必须一致地匹配,因为列表是按特定顺序生成的,需要保持这样。在给出上述源列表的情况下,'name' : 'abc'应始终与'id' : '1234'位于同一行。一个列表中的第一个值应与另一个列表中的第一个值配对,第二个值与第二个值配对,依此类推。

我已经尝试了很多东西,甚至不能足够接近,以提供一个有用的例子来说明我已经尝试过的东西。"我认为,从根本上说,我对理解工作的方式并不了解。

**编辑 - 这被标记为重复,并且欺骗似乎解决了相同的需求,尽管文本和标题集中在" json格式"而不是" dicts列表"或某事意味着我无法找到它。希望我的问题能引导一些人用不同的条款搜索答案,谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用zip + list / dict comprehensions:

names = ['abc' , 'xyz' , 'foo']
ids = ['1234' , '5678' , '9101']

res = [{"name": n, "id": i} for n, i in zip(names, ids)]