Python 以元组作为值的字典

Python 以元组作为值的字典,python,dictionary,Python,Dictionary,可以在Python中创建这样的字典吗 {'string':[(a,b),(c,d),(e,f)], 'string2':[(a,b),(z,x)...]} 第一个错误已解决,谢谢! 但是,我在for循环中使用元组,所以它一直在变化。 当我尝试这样做时: d[key].append(c) 因为c是一个元组 我现在遇到另一个错误: AttributeError: 'tuple' object has no attribute 'append' 感谢所有的答案,我设法让它正常工作 您需要以这种方

可以在Python中创建这样的字典吗

{'string':[(a,b),(c,d),(e,f)], 'string2':[(a,b),(z,x)...]}
第一个错误已解决,谢谢! 但是,我在for循环中使用元组,所以它一直在变化。 当我尝试这样做时:

d[key].append(c)
因为c是一个元组

我现在遇到另一个错误:

AttributeError: 'tuple' object has no attribute 'append'

感谢所有的答案,我设法让它正常工作

您需要以这种方式构建词典有什么原因吗?你可以简单地定义

d = {'string': [('a', 'b'), ('c', 'd'), ('e', 'f')], 'string2': [('a', 'b'), ('z', 'x')]}
如果您想要一个新条目:

d['string3'] = [('a', 'b'), ('k', 'l')]
如果您希望将元组附加到列表中:

d['string2'].append(('e', 'f'))

现在,您的问题更清楚了,只需构造一个带有循环的字典,假设您事先知道某些列表中的键

d = {}

for k in keys:
    d[k] = []

    # Now you can append your tuples if you know them.  For instance:
    # d[k].append(('a', 'b'))
如果您只想首先构建词典,还需要词典理解:

d = {k: [] for k in keys}


谢谢你的回答。但是,有什么方法可以使用 默认dict

或者您可以使用
setdefault

 d = {}
 for i in 'string1','string2':
     d.setdefault(i, []).append(('a','b'))

是的,我需要构造一个for循环的字典,我只是不知道有多少键。所以我不能先定义键。我明白了,我不太明白你的问题。我已经更新了我的答案。谢谢你的回答。但是,使用defaultdict有什么方法可以做到这一点吗?您编写了
d.append(c)
,但我认为您的意思是
d[a].append(c)
。是的,我意识到这是一个简单的语法错误!谢谢
 d = {}
 for i in 'string1','string2':
     d.setdefault(i, []).append(('a','b'))