【python学習ノート】スライス方法

11029 ワード

1、スライスの説明と簡単な使い方
pythonはスライス機能を提供し、この方法でリストやメタグループなどのいくつかの要素を簡単に取得することができ、スライスが返した結果のタイプとスライスされたものは一致している.基本的な使い方は以下の通りです.
>>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
>>> L[0:3]
['Michael', 'Sarah', 'Tracy']
>>> t=('a','b','c','d','e','f')
>>> t[0:3]
('a', 'b', 'c')

上記の例の0:3は、0から3までの番号の要素を表す.より簡単な書き方で0を省くことができます.
>>> L[:3]
['Michael', 'Sarah', 'Tracy']

0から開始しないこともできます.
>>> L[1:3]
['Sarah', 'Tracy']

番号は0から開始することもできるし、-1から開始することもできるし、すなわち最後の要素から開始することもできるので、スライスはこのように書くこともできる.
>>> L[-3:-1]
['Tracy', 'Bob']
>>> L[-3:]
['Tracy', 'Bob', 'Jack']

2、スライスの高度な使い方
スライスもステップを設定できます.基本構文は[start:stop:step]です.
>>> t[0:5:2]
('a', 'c', 'e')
start0であれば、次のように書かなくてもよい.
>>> t[:5:2]
('a', 'c', 'e')
stopが最後の要素のインデックスである場合は、次のように書くことはできません.
>>> t[::2]
('a', 'c', 'e')

Stepも書かない場合は、そのままコピーします.
>>> t[::]
('a', 'b', 'c', 'd', 'e', 'f')

文字列もスライスできます.たとえば、次のようになります.
>>> 'aabbccddeeff'[2:8:3]
'bc'
stopリストの長さを超えたインデックスを書いても、次のように間違いはありません.

>>> t[:20:3]
('a', 'd')

注意:setdictの2つはスライスをサポートしていない.del文は、スライスを直接使用することができ、例えば、リストの一部を削除することができる.
>>> del L[0:2]
>>> L
['Tracy', 'Bob', 'Jack']
>>> del L
>>> L
Traceback (most recent call last):
  File "", line 1, in <module>
NameError: name 'L' is not defined

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431756919644a792ee4ead724ef7afab3f7f771b04f5000