这是我在使用 Python 编程时遇到的一个令人恼火的问题。用户可以将各种变量附加到列表中,但是,稍后访问该列表时仍将显示与首次分配时相同的结果。例如下面
a=1
b=2
list = [a,b] #user defined order
print list # 1,2
a=2
print list # prints 1,2
我需要列表来打印 2,2。但是我找不到动态更新列表以适应变量的任何顺序的方法(很多方法都是硬编码,我在网上看到过,例如在需要更新时分配列表 = [a,b] 但是我不知道是否它的 b,a 或 a,b)
帮助将不胜感激。谢谢
编辑:我的问题是不同的,因为是关于需要在列表中动态更新的变量,而不是简单地更改列表项。
最佳答案
您需要更新列表而不是变量:
a = 1
b = 2
lst = [a, b] # the list now stores the references a and b point to
# changing a later on has no effect on this!
lst[0] = 2
请不要使用 list
作为变量名!这是 python 中的一个 keyword 内置类型,覆盖它是一个非常糟糕的主意!
如果您只知道列表中元素的值(并且这个值是唯一的),您可以这样做:
old_val = 2
new_val = 3
lst[lst.index(old_val)] = new_val
关于python - 如何更新python中的变量列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398763/