我有一个包含数百个条目的字典,格式为:
>>>dict
{'1620': 'aaaaaa'}
我想制作名为'1620'等的新空列表。我尝试过以下各种变体,但它不会将每个键识别为创建列表时要使用的变量。相反,它将列表命名为“eachkey”,我的密钥(在此示例中为“1620”)未连接到新列表。
>>>for eachkey in dict.keys():
>>> eachkey=[]
>>>
>>>eachkey
[]
>>>'1620'
1620
编辑添加: 也许我可以在制作字典的同时制作列表?把它放在下面? str(eachfile [-4:])就是我想要的列表名称。
files=open(sys.argv[1])
dict={}
for eachfile in files:
value=open(eachfile)
key=str(eachfile[-4:])
dict[key]=value
eachfile.close()
编辑:如果这是他们需要的话,我可以在数字上添加字母。
答案 0 :(得分:2)
我认为不可能更改整数文字1620
,以便它为您提供除整数1620以外的对象。同样,我认为您不能更改字符串文字'1620'
给你一个列表而不是字符串。
如果您在变量名前加上一些字母以使其成为有效名称,则可以这样做。例如,您可以使用my1620
代替1620
。我不建议这样做,但有可能:
>>> d = {'1620': 'aaaaaa'}
>>> for k,v in d.items():
... locals()['my'+k] = []
>>> my1620
'aaaaaa'
答案 1 :(得分:0)
这样的字典:
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']}
正如加雷斯所说,你真的很想做你要做的事。这可能更好。