gpt4 book ai didi

python - 获取指向列表元素的指针

转载 作者:太空狗 更新时间:2023-10-29 22:11:34 25 4
gpt4 key购买 nike

我想知道是否有可能获得一个指向 python 列表中元素的“指针”。这样,我就可以直接访问我的元素而无需知道我的元素的索引。我的意思是,在列表中,您可以在任何地方添加元素;在开始、中间甚至结束时,各个元素并没有从它们的实际内存位置移动。理论上,应该可以执行以下操作:

myList = [1]

[1]

element = &myList[0]

元素在这里充当指针。

myList.insert(0, 0)
myList.append(2)

[0, 1, 2]

此时,我仍然可以直接访问该元素,即使它在列表中的索引已更改。

我想这样做的原因是因为在我的程序中,跟踪我添加到列表中的每个项目太乏味了。每个项目都由一个对象生成。有时,对象必须更新值,但不能保证它会在与添加时相同的索引处找到它的项目。有一个指针可以解决问题。我希望这是有道理的。

在 Python 中执行类似操作的正确方法是什么?

最佳答案

python 上没有指针的概念(至少我知道)。

如果您要在列表中保存对象,您可以简单地保留对该对象的引用。

在将原始值保存到列表中的情况下,我将采用的方法是围绕一个/多个值创建一个包装对象,并保留该对象的引用以便稍后使用它而无需访问列表。这样,您的包装器就作为一个可变对象工作,并且无论您从哪里访问它都可以进行修改。

一个例子:

class FooWrapper(object):
def __init__(self, value):
self.value = value

# save an object into a list
l = []
obj = FooWrapper(5)
l.append(obj)

# add another object, so the initial object is shifted
l.insert(0, FooWrapper(1))

# change the value of the initial object
obj.value = 3
print l[1].value # prints 3 since it's still the same reference

关于python - 获取指向列表元素的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com