Python3:如何使用变量索引更新列表中的变量?

时间:2019-07-06 05:28:08

标签: python python-3.x

variable1 = 1
test_list = [variable1]
test_list[0] = 2
print(test_list[0]) #prints 2
print(variable1) #prints 1

这是我在另一个项目中遇到的一个较大问题的过度简化,但实际上可以归结为这一点-如何使用列表索引更新变量?我不想显式定义variable1,因为我试图使用for循环更新列表中的多个变量。

2 个答案:

答案 0 :(得分:4)

如果您使用字典代替list,这将更加有效。由于字典键不能重复,因此可以像使用变量一样使用键,也可以像使用值一样使用值。

test_dict = {'variable1': 1, 'variable2': 2}
test_dict['variable1'] = 2

print(test_dict['variable1'])
# 2

答案 1 :(得分:1)

Python原语(int,boolean,float等)和字符串是不可变的。结果,当您使用它们的值时,就没有对剩余变量的引用。这意味着,如果将它们添加到列表中,则该变量与左侧没有任何关系,因此您无法更改原始变量。

一种解决方案是将变量本身存储为列表:

variable1 = [1]
test_list = [variable1]
test_list[0][0] = 2
print(test_list[0]) #prints [2]
print(variable1) #prints [2]

列表是可变的,因此您可以从列表中更改变量。
正如奥斯汀在回答中所指出的那样,另一种方法是将字典键用作您的“变量”。