2010-12-02 12 views
0

オブジェクトのためのPythonの方法はあります'を知って'その配列要素IDは何ですか?アレイ内のIE 6、およびオブジェクト自体は、独自の配列要素数を出力するので、「0,1,2,3,4,5」単語、でNOPythonオブジェクトは配列内にあることを認識していますか?

+3

考えるこの方法:オブジェクトが複数の要素をある場合はどうすればシーケンス? –

+0

解決しようとしている問題はわかりませんが、['enumerate()'](http://docs.python.org/library/functions.html#enumerate) –

+0

を試してください。これを行うことは、[配列](http://docs.python.org/library/array.html)に収まるものではありません。または、[list](http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange)を意味しましたか?答えはまだ一般的にはノーである。 – aaronasterling

答えて

2

号オブジェクトはすべて内部にあっても同時に複数のオブジェクトであっても構わないので、あなたがそれを知らなければ、それを知ることはできません。

-1

オブジェクトがそのリストを知っている場合は、the_list.index(self)を実行すると分かります。そうでなければ、いいえ。

+3

リスト内の以前のオブジェクトが問題のオブジェクトと同等でない場合のみ。 –

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)の一部である...そしてあなたがそれを指示しない限り、それは位置...

0

ではありません「知っている」、と言っそれは非常に厄介なカップリングおよび/または責任問題の分離につながる。あなたは何ですか本当にするのですか?

0

ありませんが、あなたは使用することができます「列挙」インデックスと同時に要素を反復処理するための組み込み:それの

>>> x = ['a','b','c'] 
>>> for index,element in enumerate(x): 
...  print index,element 
... 
0 a 
1 b 
2 c 
関連する問題