python:使用python方式时覆盖字典
如果我以pythonic的方式创建字典,它会被覆盖python:使用python方式时覆盖字典,python,Python,如果我以pythonic的方式创建字典,它会被覆盖 ans = ['car','bus'] exp = ['a','b'] for ex in exp: b ={x: {ex: {'1:N': [],'2:N': []}} for x in ans} 如何避免覆盖“a”键?看起来您是Python初学者,因此我建议您将程序分成小块进行调试。 在您的情况下,字典将被覆盖,因为=运算符始终执行重新分配,即创建新副本,并且即使对于可变数据类型,也不会修改现有变量 如果你像这样破坏你的代码 a
ans = ['car','bus']
exp = ['a','b']
for ex in exp:
b ={x: {ex: {'1:N': [],'2:N': []}} for x in ans}
如何避免覆盖“a”键?看起来您是Python初学者,因此我建议您将程序分成小块进行调试。 在您的情况下,字典将被覆盖,因为=运算符始终执行重新分配,即创建新副本,并且即使对于可变数据类型,也不会修改现有变量 如果你像这样破坏你的代码
ans = ['car','bus']
exp = ['a','b']
b = {x:{'1:N': [],'2:N': []} for x in exp}
print(b)
它会给
{'b':{'2:N':[],'1:N':[]},'a':{'2:N':[],'1:N':[]}
如果你这样修改字典理解
b={a:{x:{'1:N':[],'2:N':[]}表示exp中的x}表示ans中的a}
然后你会得到输出
{'bus':{'b':{'2:N':[],'1:N':[],'a':{'2:N':[],'1:N':[]},'car':{'b':{'2:N':[],'1:N':[],'a':{'2:N':[],'1:N':[]}
我相信这就是您想要的,如果有帮助,请告诉我。您希望发生什么?您正在将列表设置为字典,而不是将字典设置为字典。请更清楚地了解您希望最终结果是什么