Dictionary/list 理解将列表中的新字典值分配给预定义的键

Dictionary/list comprehension to assign new dict values from lists to predefined keys

我有 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' 在同一行。一个列表中的第一个值应与另一个列表中的第一个值配对,第二个值与第二个值配对,依此类推。

我已经尝试了很多事情,甚至无法提供一个有用的例子 "what I've tried." 我认为我只是从根本上不理解推导式的工作方式。

**edit - 这被标记为重复并且被骗者似乎满足了同样的需求,尽管它的文本和标题着重于 "json format" 而不是 "list of dicts" 或其他意思我不会找到它。希望我的问题能让一些人用略有不同的术语搜索答案,谢谢。

您可以使用 zip + list/dict 理解:

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

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