Python - 变量列表

时间:2016-02-16 14:38:37

标签: python

我不知道Python是否有可能,但这是我打算做的事情

var = 5
array=[]
array.append(var)
array[0] = 1

我希望{1}}和var更新为1并打印1:

array[0]

在Python中是否可以发送指针并取消引用指针值来更改它?

3 个答案:

答案 0 :(得分:2)

Python实际上没有变量*,Python有名字。见Ned Batchelder的Facts and myths about Python names and values

因此,类似C的指针概念不能很好地转换为Python。 var只是一个指向整数对象5的名称;通过将var附加到array,您创建了对该对象的另一个引用,而不是指向var的指针。

无论你想做什么,都可以通过例如字典提供更好的服务:

vars = {"var": 5}
array = []
array.append("var")
vars[array[0]] = 1

print(vars[array[0]]) # prints "1"
print(vars["var"])    # ditto

*在上述文章中,Ned Batchelder写道“名称​​是 Python的变量”。换句话说,Python确实有变量,但它们的工作方式与C或Java中的变量不同。

答案 1 :(得分:1)

在python中是不可能的。 (list是可变的,但integer是不可变的)您可以使用可变对象的别名来实现类似的效果。

所以你可以这样做,

>>> var = [5]
>>> array = []
>>> array.append(var)
>>> var[0] = 3
>>> array
[[3]]

答案 2 :(得分:0)

我认为这对您也有用:

val=[]
array=val
array.append(5)

# it is all aliased so everything should be equal
print val[0], array[0], val == array