Python:使用Python方式时字典覆盖



如果我以python方式创建字典,它将被覆盖

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': []} for x in exp} for a in ans}

那么你会得到输出
{'bus': {'b': {'2:N': [], '1:N': []}, 'a': {'2:N': [], '1:N': []}}, 'car': {'b': {'2:N': [], '1:N': []}, 'a': {'2:N': [], '1:N': []}}}

我相信这就是你想要的,如果有帮助请告诉我。

最新更新