pythonのスライス操作について
纏めようと思ったら半年ぐらい経過していたので流石に記事を書きます
スライスとはシーケンス(リスト、文字列、タプル、バイト列等)の一部分を切り取ってコピーを返すこと
基本的に使用するときは:を使って
例)
code:python
s="python"
始点と終点のインデクスを、コロンを挟む形で指定する。
始点、終点は省略することが可能になっている。
例)
code:python
s="Python"
上記で軽く触れてあるが、pythonでのコピーはcopyモジュールを使用できる。
しかし、スライスを使うともっと楽に実装出来る。
code:python
b = a: # 終点始点を指定してすべてをスライスで取得(結果コピーと同じ) b0 *= 10 # bはaのコピーなのでaには影響がない. print(a)
print(b)
ただし多重リストをこの方法でコピーした場合,単純なシャローコピーになるので思わぬ副作用が出てBugになってしまうことがある.
インデックスには負数の指定することも出来る。
https://gyazo.com/4d8f9f95b7c15627506dd85351242077
code:python
s = 'Python'
スライスでは以下のようにステップを指定することも可能。
例)
code:python
s=0,1,2,3,4,5,6,7,8,9,10 print(even)
print(odd)
s="Python"
最後の例はステップで負数を指定する方法
参考サイト