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()}