gpt4 book ai didi

python - 元组到字典 :one key and multiple values

转载 作者:太空狗 更新时间:2023-10-30 00:36:49 25 4
gpt4 key购买 nike

如何转换元组:

t=(('1','a'), ('1','A'), ('2','b'), ('2','B'), ('3','c'),('3', 'C'))

放入字典:

{'1':('a','A'),'2':('b','B'),'3':('c','C')}

我在控制台试过:

>>> d={}
>>> t[0]
(1, 'a')
>>> d[t[0][0]]=t[0][1]
>>> d
{1: 'a'}
>>> t[0][0] in d
True
>>> d[t[1][0]]=t[1][1]
>>> d
{1: 'A'}
>>> d[t[0][0]]=t[0][1]
>>> d[t[1][0]]=d[t[1][0]],t[1][1]
>>> d
{1: ('a', 'A')}

现在以下脚本无法完成工作:

t=(('1','a'), ('1','A'), ('2','b'), ('2','B'), ('3','c'),('3', 'C'))
print "{'1':('a','A'),'2':('b','B'),'3':('c','C')} wanted, not:",dict(t)
d={}

for c, ob in enumerate(t):
print c,ob[0], ob[1]
if ob[0] in d:
print 'test'
d[ob[0]]=d[ob[0]],ob[1]
print d

else:
print 'else', d, ob[0],ob[1]
d[ob[0]]=d[ob[1]] # Errror is here
print d
print d

我有错误:

Traceback (most recent call last):
File "/home/simon/ProjetPython/python general/tuple_vers_dic_pbkey.py", line 20, in <module>
d[ob[0]]=d[ob[1]]
KeyError: 'a'

好像和$>>> d[t[0][0]]=t[0][1]$不一样。感谢您的帮助

日本

附言有更好的转换方法吗?

最佳答案

您可以使用 defaultdict来自 collections 模块(尽管它更适用于列表,而不是元组):

t=(('1','a'), ('1','A'), ('2','b'), ('2','B'), ('3','c'),('3', 'C'))

from collections import defaultdict
d = defaultdict(list)
for k, v in t:
d[k].append(v)

d = {k:tuple(v) for k, v in d.items()}
print d

或者简单地将元组加在一起:

t = (('1','a'), ('1','A'), ('2','b'), ('2','B'), ('3','c'),('3', 'C'))
d = {}
for k, v in t:
d[k] = d.get(k, ()) + (v,)
print d

关于python - 元组到字典 :one key and multiple values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com