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()}
我最近开始学习编程 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()}