在您的代码中,您正在创建一个空列表
values = []
然后,您创建一个字典{newvalue : oldvalue}
,其中只有一个oldvalue
键为newvalue
. 最后,您通过方法将此字典添加到列表中append
。是的,在 Python 中,将字典作为列表的元素并将列表作为字典的元素(甚至它们的键)是绝对有效的。但是,这很可能不是您想要实现的。
如果你想要的是一个包含元素的列表newvalue
and oldvalue
,你应该这样写:
values= []
values.append(newvalue)
values.append(oldvalue)
或者干脆
values= [newvalue, oldvalue]
如果你想要的是一个oldvalue
由 key 标识的单个元素的字典newvalue
,你应该写:
values= {}
values[newvalue]= oldvalue
或者干脆
values= {newvalue: oldvalue}
您的代码不起作用,因为values
最初是空的,所以for
循环根本不会迭代。你可能想要的是:
values= {}
if newvalue not in values.keys(): # "newvalue not in values" is shorter but can be misleading
values[newvalue]= oldvalue
或者
values= {}
if values[newvalue] is None:
values[newvalue]= oldvalue
此外,values.update({newvalue: oldvalue})
是 的同义词values[newvalue]= oldvalue
,但您似乎正在尝试通过执行来混合使用此表单和列表values.append({newvalue: oldvalue})
。同样,字典不是单元素字典的列表(这是您正在构建和尝试操作的)。