繁体   English   中英

Select 键和元组中的一个值,每个键有多个值以创建新字典

[英]Select key and one value out of tuples with multiple values per key to create new dictionary

我最近开始学习编程 Python 并且遇到了问题。 我试图自己解决这个问题,但没有成功。

我有一个带有格式化字符串作为键的字典和每个键有 3 个值的元组。

dict1 = { “a;2;1;1;”: (1, 2, 3), “a;3;2;1;”: (4, 5, 6)}

我想用来自 dict1 的所有键和每个键的第三个值创建一个新的字典 dict2。

dict2 = { “a;2;1;1;”: 3, “a;3;2;1;”: 6}

在这些示例中,我只使用了两个键值对,真正的字典有上万个键值对。

有什么建议么? 帮助表示赞赏。

2 线解决方案,可能会以更“python”的方式完成,但这会起作用:

dict1 = {'a;2;1;1;' : ( 1, 2, 3), 'a;3;2;1;' : ( 4, 5, 6)}
dict2 = {}

# You just need these two lines here
for k in dict1:
    dict2[k] = dict1[k][2]

print(dict2)

做一个简单的迭代:

dict2 = dict()
for k in dict1:
    dict2[k] = dict1[k][2]

或者使用 dict-comprehension 在一行中完成:

dict2 = {k: dict1[k][2] for k in dict1}
dict1 = { 'a;2;1;1;' : ( 1, 2, 3), 'a;3;2;1;' : ( 4, 5, 6)}
dict2 = {}

for k in dict1.keys():
    dict2[k] = dict1[k][2]

这也可以通过字典理解来完成:

dict1 = { “a;2;1;1;” : ( 1, 2, 3), “a;3;2;1;” : ( 4, 5, 6)}
dict2 = {x: y for (x,(_,_,y)) in dict1.items()}

非常感谢,它工作得很好。 非常感谢您的快速回复。 你让我今天很开心!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM