0

エレガントでPythonの方法で配列のインデックスを取得したいだけなのか、どうすればよいのか疑問に思いました。range(0、len(array))を使用することもできますが、もっと良い方法があります

def array(self):
    array = ['a','b','c']
    for i , j in enumerate (array) :
        print i
4

3 に答える 3

3

いいえenumerate。これは「Pythonic」であり、Pythonで配列を反復処理するための最良の方法です(インデックスと要素が必要な場合)。

于 2012-10-12T15:03:33.230 に答える
2

通常、私は使用しますenumerate

for i,_ in enumerate(myiter):
    ...

アンダースコアは、「解凍時の構文エラーを回避するためにこれが必要ですが、結果を使用するつもりはありません」という慣用句です。

ただし、インデックスのみが必要な場合は、(私の意見では) 次のことも許容されます。

for i in xrange(len(lst)):  #range for py3k.
    ...

インデックスのみが必要になることはまれであることに注意してください。ユースケースによっては、司法使用zipまたはその他の組み込み関数を使用することで、多くの場合、それを必要としないようにすることができます...

于 2012-10-12T15:13:04.320 に答える
0

他の多くの人が言っているように、列挙は行く方法です。j を使用する予定がない場合の提案:

for i, _ in in enumerate (array) :

または:

for i, foo in in enumerate (array) :

そうすれば、混乱することもなく、もう少しエレガントになります。

于 2012-10-12T15:13:14.507 に答える