Python高級特性スライス(Slice)操作詳細


スライス操作は、まず下付き索引をサポートし、[N:M:P]で操作します。
インデックスは0から開始し、-1から開始します。
N:スライス開始位置
M:スライス終了位置(含まない)
P:スライスのステップサイズを指定して、正の数値で指定されたステップの順方向スライスを表しています。負の値と逆です。
一、リストのスライス操作
リストのスライス後ですか?それともリストですか?
リストジェネレータでリストを定義します。
In[2]:a=[n forn in range(10)]
In[3]:a
Out[3]:[0,1,2,3,4,5,6,7,8,9]
スライスによってオブジェクトを浅くコピーする:
In[4]:a[:]
Out[4]:[0,1,2,3,4,5,6,7,8,9]
In[5]:a[:]
Out[5]:[0,1,2,3,4,5,6,7,8,9]
スライスを開始する位置を指定します。
In[6]:a[1:]
Out[6]:[1,2,3,4,5,6,7,8,9]
In[7]:a[1::]
Out[7]:[1,2,3,4,5,6,7,8,9]
スライス範囲を指定します。終了は含まれません。
In[8]:a[1:5]
Out[8]:[1,2,3,4]
In[9]:a[2:6:]
Out[9]:[2,3,4,5]
ステップ長スライスを指定:
In[10]:a[0:9:3]
Out[10]:[0,3,6]
In[11]:a[0:9:2]
Out[11]:[0,2,4,6,8]
ステップの方向を指定:
In[12]:a[9:0:-2]
Out[12]:[9,7,5,3,1]
In[13]:a[9:0:-3]
Out[13]:[9,6,3]
スライスを通してリストを逆に置く:
In[15]:a[:-1]
Out[15]:[9,8,7,6,5,4,3,2,1,0]
二、タプルスライス
タプルスライス後はタプルで、使用法はリストカットと同じですが、注意が必要です。
In[17]:b=(n forn in range(5)
In[18]:b
Out[18]:at 0 x 000020645 EDT 780>
括弧を通る式は元のグループではなく、生成器のもう一つの形です。
In[19]:b=tuple(n forn in range(5))
In[20]:b
Out[20]:(0,1,2,3,4)
In[21]:b[:-1]
Out[21]:(4,3,2,1,0)
In[22]:b[0:2:]
Out[22]:(0,1)
三、文字列スライス
文字列スライス後も文字列です。使い方もリストスライスと一致します。
In[23]:c=「ハロー、ワールド」
In[24]:c[:-1]
Out[24]:'drow,olleh'
In[25]:c[0:5:]
Out[25]:'hello'