由于某种原因,我的小大脑遇到了问题,我有一个元组列表 list = [('name:john','age:25','location:brazil'),('姓名:terry','年龄:32','位置:acme')]
。我试图将这些值移动到字典中以便稍后解析。我做了一些尝试,在最新的这些尝试之下,我没有将所有结果放入字典中,字典最终以迭代的最后一个值结束(它每次都重新创建字典)。
people = {}
list = [('name:john','age:25','location:brazil'),('name:terry','age:32','location:acme')]
for value in list:
people = {'person': [dict(item.split(":",1) for item in value)]}
最佳答案
你也可以尝试这个:
inlist = [('name:john','age:25','location:brazil'),('name:terry','age:32','location:acme')]
d = []
for tup in inlist:
tempDict = {}
for elem in tup:
elem = elem.split(":")
tempDict.update({elem[0]:elem[1]})
d.append({'person':tempDict})
print(d)
输出:
[{'person': {'location': 'brazil', 'name': 'john', 'age': '25'}}, {'person': {'location': 'acme', 'name': 'terry', 'age': '32'}}]
如果您想要一个带有键 person
的字典,并使用人员信息对字典进行值,则将 d.append({'person':tempDict})
替换为d.append(tempDict)
并在打印之前添加 d = {'person':d}
。
输出:
{'person': [{'location': 'brazil', 'name': 'john', 'age': '25'}, {'location': 'acme', 'name': 'terry', 'age': '32'}]}
关于python - 字典的元组列表未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47891699/