【发布时间】:2018-05-29 18:26:38
【问题描述】:
我有 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' 在同一行。一个列表中的第一个值应与另一个列表中的第一个值配对,第二个与第二个配对,依此类推。
我已经尝试了很多东西,但仍然无法提供一个有用的示例来说明“我尝试过什么”。我认为,我只是从根本上不了解理解的工作方式。
**edit - 这被标记为重复,并且欺骗似乎解决了相同的需求,尽管它的文本和标题侧重于“json格式”而不是“dicts列表”或其他意味着我不会没找到。希望我的问题能引导一些人用稍微不同的术语搜索答案,谢谢。
【问题讨论】:
-
哪个版本的python?
-
对不起,这将在 3.6 中
-
问题:“结构化如下:”块中的对象不是有效对象。外部大括号表示它是一个集合或一个字典;但是集合不能包含字典,字典只能包含键值对,不能包含单个值。也许你真正想要的是一个字典列表。
-
大概是这样,是的,抱歉,正在调整
标签: python python-3.x dictionary-comprehension