Python 如何制作与字典键同名的列表?

Python 如何制作与字典键同名的列表?,python,list,dictionary,key,Python,List,Dictionary,Key,我有一本字典,包含几百个条目,格式如下: >>>dict {'1620': 'aaaaaa'} 我想创建一个名为“1620”的新的空列表,等等。我尝试了下面的变体,但它没有将eachkey识别为创建列表时要使用的变量。相反,它按字面意思将列表命名为“eachkey”,并且我的密钥(在本例中为“1620”)未连接到新列表 >>>for eachkey in dict.keys(): >>> eachkey=[] >>>

我有一本字典,包含几百个条目,格式如下:

>>>dict
{'1620': 'aaaaaa'}
我想创建一个名为“1620”的新的空列表,等等。我尝试了下面的变体,但它没有将eachkey识别为创建列表时要使用的变量。相反,它按字面意思将列表命名为“eachkey”,并且我的密钥(在本例中为“1620”)未连接到新列表

>>>for eachkey in dict.keys():
>>>    eachkey=[]
>>>
>>>eachkey
[]
>>>'1620'
1620
编辑以添加: 也许我可以在编字典的同时列出清单?把它放在下面?str(每个文件[-4:])就是我希望列表命名的内容

files=open(sys.argv[1])
dict={}
for eachfile in files:
    value=open(eachfile)
    key=str(eachfile[-4:])
    dict[key]=value
eachfile.close()

编辑:如果需要的话,我可以在数字旁边加上字母。

我认为不可能更改整型文字
1620
,这样它会给你一个整型1620以外的对象。类似地,我不认为您可以更改字符串literal
'1620'
来提供列表而不是字符串

如果在变量名前面加上一些字母,使其成为有效名称,则可以这样做。例如,您可以使用
my1620
而不是
1620
。我不建议这样做,但有可能:

>>> d = {'1620': 'aaaaaa'}
>>> for k,v in d.items():
...     locals()['my'+k] = []
>>> my1620
'aaaaaa'
用这样一句话:

d1 = {'foo':'bar', '1621':'hello'}
尝试这样做:

d2 = dict((k,list()) for k in d1.keys())
现在d2是:

{'1621': [], 'foo': []}
您可以参考您的列表,以便:

d2['1621'].append(20)
d2['foo'].append(5)
d2['foo'].append('zig')
这使得d2:

{'1621': [20], 'foo': [5, 'zig']}

正如加雷斯所说,你不太可能真的想做你要求做的事情。这可能更好。

我不希望列表包含该值。我希望它为空,以便以后可以将其他数据放入其中。@user1539097:um。。。因此,为dict.items()中的k指定一个空列表?>>>:。。。本地人()[“我的”+k]=[。。。回溯(最近一次调用last):文件“”,第2行,类型错误:无法连接'str'和'tuple'对象如果您不知道错误发生的原因或如何修复它,您可能不应该做像从字典动态创建本地名称这样的坏事。试着找到解决问题的另一种方法。请认真考虑你是否真的想这么做。(让我换一种说法:我大约99.9%相信这是个坏主意,即使考虑到你想这么做,我也不知道你的理由。)此外,不要给你的字典命名为dict,否则你会遇到一些令人讨厌的惊喜。@GarethMcCaughan是正确的。也许你可以解释一下你为什么这么做,这样我们就可以建议一个更好的方法来实现你的目标?