在Python中有没有办法让'知道'它的数组元素id是什么? I.e 6在一个数组中,对象本身打印出自己的数组元素号,所以'0,1,2,3,4,5'
答案 0 :(得分:2)
总之,不......
答案 1 :(得分:2)
没有。对象可以同时包含在所有内容和多个对象中,因此除非您告诉它,否则无法知道。
答案 2 :(得分:0)
只是为了迂腐:总的来说,没有...... 但从技术上讲,某些(特定)对象是可能的,这些对象是某些数组的一部分,以“了解它们的位置”......
class HelpfulClass(object):
def __init__(self):
self.arr = []
def add(self, obj):
pos = len(self.arr) + 1
self.arr.append(obj)
obj.pos = pos
class SmartObj(object):
def __init__(self):
self.pos = None
def print_my_element(self):
print self.pos
if __name__ == '__main__':
s = HelpfulClass()
o = SmartObj()
s.add(o)
o.print_my_element()
...技术上'o'是一个对象......和一个数组的一部分(s.arr)......并且“知道”它的位置......
答案 3 :(得分:0)
除非你告诉它,并告诉它导致非常烦人的耦合和/或责任问题的分离。你真的试图做什么?
答案 4 :(得分:0)
不,但您可以使用'enumerate'内置来同时迭代索引和元素:
>>> x = ['a','b','c']
>>> for index,element in enumerate(x):
... print index,element
...
0 a
1 b
2 c
答案 5 :(得分:-1)
如果对象知道它所属的列表,它可以通过the_list.index(self)
找到。否则,没有。