我不知道Python是否有可能,但这是我打算做的事情
var = 5
array=[]
array.append(var)
array[0] = 1
我希望{1}}和var
更新为1并打印1:
array[0]
在Python中是否可以发送指针并取消引用指针值来更改它?
答案 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