3
>> a = range(10)
>> print a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

このスライスは反転したリストを提供します。それはどのように機能しますか?

4

3 に答える 3

11

3番目の引数はステップ修飾子です。この場合、のステップを使用しています-1

のステップを使用して、2すべての偶数のインデックスを印刷することもできます。

>>> a = range(10)
>>> a[::2]
[0, 2, 4, 6, 8]
>>> a[::-2]
[9, 7, 5, 3, 1]
于 2012-05-01T04:14:13.660 に答える
4

拡張スライスを作成したら、評価の低いslice ()関数を必ず評価して ください。

>>> for sl in [(1,-1),(0,20,3),(10,),(None,None,-3),(None,None,4)]:
...    print range(20)[slice(*sl)]
... 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
[0, 3, 6, 9, 12, 15, 18]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[19, 16, 13, 10, 7, 4, 1]
[0, 4, 8, 12, 16]

これは、固定長のデータ形式で特に役立ちます。

于 2012-05-01T06:00:42.363 に答える
2

これは拡張スライス構文です。ドキュメントを参照してください

xはrange(x,y,z)開始、yは停止、zはストライドです。

これは、このSO投稿で詳しく説明されています。

于 2012-05-01T04:55:02.347 に答える