2017-01-18 6 views
0

学校の仕事では、ユーザーからテキストを受け取り、これをリストにして、ユーザーがテキスト内で検索した単語のすべての位置を見つけるプログラムを開発する必要があります。以下の回線コードは何を意味していますか?

私はほとんどこれを行うには複数の方法を見つけましたが、それらはすべてラインのどこかで少し落ち込んでいます。私は理解できないので、誰かが私にこのことを説明できるかどうか疑問に思っていました。

コードの行は、position = [I for I, x in enumerate(text2) if x == (word)]

+1

これは、['enumerate'](https://docs.python.org/3/library)を使用する[list comprehension](http://www.secnetix.de/olli/Python/list_comprehensions.hawk)です。 /functions.html#enumerate) –

+0

positionは、text2の要素がwordに等しいすべてのインデックスのリストです – fafl

答えて

0

enumerate関数は、シーケンス内の要素の位置に対応するインデックスを作成しています。

リストがl = ['this', 'is', 'a', 'text']の場合、列挙型は[(0, 'this'), (1, 'is'), (2, 'a'), (3, 'text')]を生成します(実際にはジェネレータを作成しますが、現在はそれほど重要ではありません)。 python docsによれば、列挙 は、と等価である:

def enumerate(sequence, start=0): 
    n = start 
    for elem in sequence: 
     yield n, elem 
     n += 1 

タプルは、次にI, xに展開されています。 xがwordに等しい場合は、Iがリストに追加されます。

関連する問題