小编rau*_*aul的帖子

如何从具有不同长度列表的字典中创建词典列表

我想从每个列表创建具有相同索引元素的词典列表。

我有这本字典:

d = {'name': ['bob', 'john', 'harry', 'mary'], 
     'age': [13, 19, 23], 
     'height': [164, 188], 
     'job': ['programmer']}
Run Code Online (Sandbox Code Playgroud)

所需的输出是:

d2 = [{'name': 'bob', 'age': 13, 'height': 164, 'job': 'programmer'}, 
      {'name': 'john', 'age': 19, 'height': 188}, 
      {'name': 'harry', 'age': 23},
      {'name': 'mary'}]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这样的事情:

d2 = [dict(zip(d, t)) for t in zip(*d.values())]
Run Code Online (Sandbox Code Playgroud)

但是我的输出是:

d2 = [{'name': 'bob', 'age': 13, 'height': 164, 'job': 'programmer'}]
Run Code Online (Sandbox Code Playgroud)

我认为这是因为列表的长度不同而引起的。

python dictionary list-comprehension python-itertools

26
推荐指数
3
解决办法
1064
查看次数

字符串到字典,键是以“。”结尾的单词。

我有一个字符串,其中包含稍后在代码中需要使用的信息,并且我想通过以下方式从字符串中创建字典。

该字符串的键以“。”结尾。

我想要一个像这样的字符串:

"Mem. 3000 GB Nm. Mario Andrew Ag. 34 Str. Photoliss Street Nr. 45B"
Run Code Online (Sandbox Code Playgroud)

成为这个命令:

{"Mem": "3000 GB", "Nm": "Mario Andrew", "Ag": "34", "Str": "Photoliss Street", "Nr": "45B"}
Run Code Online (Sandbox Code Playgroud)

键与字符串之间可以不同,因此它不遵循模板。

python dictionary

2
推荐指数
1
解决办法
83
查看次数