在您的代码中,您正在创建一个空列表
values = []
然后,您创建一个字典{newvalue : oldvalue},其中只有一个oldvalue键为newvalue. 最后,您通过方法将此字典添加到列表中append。是的,在 Python 中,将字典作为列表的元素并将列表作为字典的元素(甚至它们的键)是绝对有效的。但是,这很可能不是您想要实现的。
如果你想要的是一个包含元素的列表newvalueand 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})。同样,字典不是单元素字典的列表(这是您正在构建和尝试操作的)。