誰かがなぜ特定のスライス操作を 文字列を反転させるのか説明できないことがあります。私が を理解していないスライスに関するものがなければならない。基本操作:■ なぜ[-1:-1:-1]は文字列を逆転させることができませんか?
s='abcd'
私は、デフォルト値を使用して行うことができ、この文字列を逆に考えると、[開始::最後のステップ]
s[::-1]
または
s[-1::-1]
ものがあります罰金、しかし、なぜですか?
s[-1:-1:-1]
私は全体の文字列を逆にしてくれますか?それは で始まり、文字列の最後の文字は(-1)になり、stepsizeは-1になります。つまり、インデックス番号0の前に、 を1つ下げて実行する必要があります。代わりに「」を取得します。
for i in xrange(3, -2, -1):
print 's[-1:%d:-1] => ' %i,
print s[-1:i:-1]
利回り:
s[-1:3:-1] => # didn't expect any output
s[-1:2:-1] => d
s[-1:1:-1] => dc
s[-1:0:-1] => dcb
s[-1:-1:-1] => # shouldn't this be 'dcba'?
私がここで行方不明です何?
(私は、文字列を反転させる上で掲示をたくさん見ましたが、この特定のアイテムがどこかで説明された場合、私はそれを逃した)
スライスが同じインデックスで開始して終了する場合、どのように空以外のものになる可能性がありますか? – FatalError
@FatalErrorが言ったこと。ちなみに、 "1前1"はインデックス0ではなく、-2となります。算術的には、0は-1の後の1です。 – smci
はい、0とそれ以下でダウンカウントしようとする文字列スライスを作成できます。しかし、それは不思議です: 's [2:-2:-1]'は不思議に空ですが、 '' [-2:2:-1] 'は一見しても動作しないように見えます。 – smci