gpt4 book ai didi

python - 将 "pointers"保留到列表中的对象的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:47 25 4
gpt4 key购买 nike

我有一个对象列表。创建后,列表不会改变 - 但对象的属性值会改变。

我需要随时在列表中维护两个“指针”。例如“这个”和“那个”

我可以只保留两个数字索引来做到这一点:

this=3
that=7
doSomething(mylist[this])
doSomethingElse(mylist[that])
this=9
doSomethingNew(mylist[this])

或者我可以通过使用对对象的引用来做到这一点吗?例如像

this=mylist[3]
that=mylist[7]
doSomething(this)
doSomethingElse(that)
this=mylist[9]
doSomethingNew(this)

对“this”的所有操作是否会影响列表中的对象,而不是它的副本,即更改将被保留?

最佳答案

Will all operations on "this" affect the object in the list, and not a copy of it, i.e changes will be retained?

是的。该列表仅包含对相同对象的引用。

what's the best way to keep "pointers" to objects in a list?

您已经提到“一旦创建,列表将不会更改”,因此许多关于维护列表索引或仅维护对象本身更好的争论在这里无关紧要.

那么您如何处理索引?

  • 如果您使用索引来访问对象(通过list.__getitem__),那么您还不如直接维护对这些对象的引用。
  • 如果您关心指数的值(value),例如列表中这对项目之间的距离,或者其中一个是否在列表的开始/结束/中间,然后使用整数。

自定义类在这里可能是一个不错的选择,但您必须发布更多代码并描述用例才能获得可靠的建议。

关于python - 将 "pointers"保留到列表中的对象的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189954/

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