【发布时间】:2020-05-30 00:31:44
【问题描述】:
我想用另一个具有固定键的词典制作一个词典,例如
dic1 = {'filename':'file1','namelen':'5'}
dic2 = {
"file1":dic1,
"file2":dic2,
...
...
}
我的代码的问题是添加一个新的字典会覆盖所有现有的内部字典。
dic1 ={}
dic2 ={}
file_list = ["file1","file2", "file3"]
for file in file_list:
dic1["filename"] = file
dic1["namelen"] = len(file)
dic2[file] = dic1
print(dic2)
我的字典是这样的
dic2 =
{
'file1': {'namelen': 5, 'filename': 'file3'},
'file3': {'namelen': 5, 'filename': 'file3'},
'file2': {'namelen': 5, 'filename': 'file3'}
}
如何在不切换到列表的情况下防止覆盖?
【问题讨论】:
-
将
dic1 ={}移动到你的for loop中 -
dic2不是有效的 Python,因为它代表一个带有字典的集合(不可散列) -
@DaniMesejo,我已在第一个描述中更正。对不起!
标签: python python-3.x dictionary overwrite