質問を説明する間、しばらくお待ちください。拡張スライス リストのインデックス作成を既に理解している場合は、太字の見出しまでスキップしてください。
Python では、スライス表記を使用してリストにインデックスを付けることができます。次に例を示します。
>>> A = list(range(10))
>>> A[0:5]
[0, 1, 2, 3, 4]
「ステップ」のように機能するストライドを含めることもできます。
>>> A[0:5:2]
[0, 2, 4]
ストライドを負にすることもできます。つまり、要素は逆の順序で取得されます。
>>> A[5:0:-1]
[5, 4, 3, 2, 1]
ちょっと待って!見たかった[4, 3, 2, 1, 0]
。なるほど、開始インデックスと終了インデックスをデクリメントする必要があります。
>>> A[4:-1:-1]
[]
どうしたの?-1 は、配列の先頭ではなく末尾にあると解釈しています。私はあなたが次のようにこれを達成できることを知っています:
>>> A[4::-1]
[4, 3, 2, 1, 0]
ただし、すべての場合にこれを使用できるわけではありません。たとえば、インデックスが渡されたメソッドで。
私の質問は:
シーケンスの最初の要素を含む負のストライドと明示的な開始インデックスと終了インデックスを持つ拡張スライスを使用する良い Pythonic の方法はありますか?
これは私がこれまでに思いついたものですが、満足のいくものではないようです。
>>> A[0:5][::-1]
[4, 3, 2, 1, 0]