当前位置: 首页 > 面试题库 >

获取指向列表元素的指针

卓宏达
2023-03-14
问题内容

我想知道是否有可能为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


 类似资料:
  • Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个 操作,代码如下: 代码输出如下: name: ''  kind: 'ptr' element name: 'cat', element kind: 'struct' 代码说明如下: 第 15 行,创建了cat结构体的实例,ins 是一个

  • 我有如下HTML结构: 我使用Selenium,需要通过使用XPath搜索这个唯一值来指向唯一值旁边的td。 我找到了解决方法:找到需要唯一值的tr,然后计算td的前一个兄弟,使用position()=count(前一个兄弟)+2 有更简单的方法吗?问题是表的结构可能会随着时间的变化而变化,但是所需的值总是紧挨着唯一的

  • 假设有一个结构 我得到一个指向该结构的成员的指针,比如作为某个函数的参数: 如何获取指向包含对象的指针?最重要的是:在不违反标准中的某些规则的情况下,也就是说,我想要标准定义的行为,而不是未定义或实现定义的行为。 附带说明:我知道这规避了类型安全。

  • 问题内容: 我有具有特定名称的元素的NodeList,我想拥有所有theese节点的XPath。 我找不到方法。 我正在寻找类似GET_XPATH()的方法 有人知道该怎么做吗?甚至有可能吗? 如果可能,XSLT也可以使用它,但是如果有人知道Java中的这种可能性,则最好使用它。 原因:我需要一组指向XML库的指针。指向定义元素的指针。 输入示例: 输出: 问题答案: 以下样式表: XSLT 1.

  • 问题内容: 假设我有3个列表:[‘q’,’w’],[‘a’,’s’],[‘z’,’x’]。如何从这些列表中获取可能的组合列表?所以我得到一个列表[[‘q’,’a’,’z’],[‘q’,’s’,’z’]]等。我为两个方法创建了一个方法,但对N个列表却找不到一个方法: 我发现这是由番石榴的Sets.cartesianProduct完成的。 问题答案: 您需要N个嵌套循环,这使它变得很难。 您可以使用递

  • 问题内容: 使用Javascript,如何确定给定位置的元素?基本上,我希望编写一个函数,该函数接受两个输入参数(x和y坐标),并在参数所表示的屏幕上的位置处返回html元素。 问题答案: http://dev.w3.org/csswg/cssom-view/#dom-document- elementfrompoint http://msdn.microsoft.com/zh- CN/libra