4

わかりました、ここで別の問題があります\n。リスト内の一人の位置を見つける必要があります。

list = ['abc', '\n', 'def', 'ghi', '\n', 'jkl']

したがって、このリストからすべての '\n' エントリの位置を取得する必要があります。

使った

a=list.index('\n')

しかし、「1」として値を 1 つだけ取得しました。両方のポジションを取得するには?

たとえば、'\n' の位置のリストを取得します

位置 = ['1', '4']

'1' はリスト内の \n の最初の位置を表し、'4' はリスト内の 4 番目の位置で 2 番目を表します。

4

3 に答える 3

11

要素を反復処理する必要があります。enumerateこれは、リスト内包表記とインデックスを使用することで簡単に実行できます。

indexes = [i for i, val in enumerate(list) if val == '\n']

デモ:

>>> lst = ['abc', '\n', 'def', 'ghi', '\n', 'jkl']
>>> [i for i, val in enumerate(lst) if val == '\n']
[1, 4]
于 2012-08-13T09:38:29.077 に答える
4
[i for i, x in enumerate(l) if x == "\n"]
# => [1, 4]

listこれは組み込み関数であるため、リストを呼び出さないでください。

于 2012-08-13T09:40:26.313 に答える
0

複数回出現するリスト内のアイテムのインデックスを見つけるには、次のコードが機能するはずです

print [i for i in range(len(list)) if list[i] == '\n']

ここでlist は、質問で使用したとおりに使用しましたが、キーワードを変数として使用しないでください。

于 2012-08-13T09:47:10.433 に答える