1

だから私の質問は - 私はそのようなコードを持っています:

test_text = "lorem ipsum dolor sit amet"

for each in test_text:
   #do some stuff

そして、現在 for によって「強調表示」されている文字に対しては確かに機能しますが、test_text [said_variable] に対処できるように、反復ごとにインクリメントする追加の変数がなければ、前のものには何もできません。つまり、ユーザーが望むすべての文字について、その文字の 5 インデックス前の文字を印刷する必要があるとしましょう。追加の変数がなければ、これを行うことはできません。誰か助けてくれませんか?そのようにプレイすることなく、現在取り組んでいるものの前 (または後) に何かに取り組むことはできますか?

初歩的な質問で申し訳ありませんが、私はPythonを始めたばかりで、問題について何も見つかりませんでした.

4

2 に答える 2

8

2番目の変数なしでこれを実行できるとは思いませんが、手動でインクリメントする必要はありません。

for i, each in enumerate(test_text):
    print each, test_text[i-5]

ドキュメントを列挙する

負のリストインデックスはリストの最後に移動します。つまり、最後の文字を返すため、この動作を望まない場合test_text[-1]はチェックを追加する必要があります。i-5

于 2012-08-19T18:02:31.470 に答える
4

Lenna が投稿したように、enumerateはループ中に位置インデックスを追跡する良い方法です。

つまり、text[i-5]ルックアップはいつでも失敗しますi < 5。代わりに、スライスを使用して の周りの範囲にアクセスしてみてくださいi

>>> test_text = "lorem ipsum dolor sit amet"
>>> for i, c in enumerate(test_text):
    print repr(c), "is surrounded by", repr(test_text[i-5:i+5])


'l' is surrounded by ''
'o' is surrounded by ''
'r' is surrounded by ''
'e' is surrounded by ''
'm' is surrounded by ''
' ' is surrounded by 'lorem ipsu'
'i' is surrounded by 'orem ipsum'
'p' is surrounded by 'rem ipsum '
's' is surrounded by 'em ipsum d'
'u' is surrounded by 'm ipsum do'
'm' is surrounded by ' ipsum dol'
' ' is surrounded by 'ipsum dolo'
'd' is surrounded by 'psum dolor'
'o' is surrounded by 'sum dolor '
'l' is surrounded by 'um dolor s'
'o' is surrounded by 'm dolor si'
'r' is surrounded by ' dolor sit'
' ' is surrounded by 'dolor sit '
's' is surrounded by 'olor sit a'
'i' is surrounded by 'lor sit am'
't' is surrounded by 'or sit ame'
' ' is surrounded by 'r sit amet'
'a' is surrounded by ' sit amet'
'm' is surrounded by 'sit amet'
'e' is surrounded by 'it amet'
't' is surrounded by 't amet'
于 2012-08-19T18:07:23.400 に答える