Pythonスライス操作の基本、メモ的サンプルプログラム 【ステップ使用例追加!】
Pythonスライス操作の基本、メモ的サンプルプログラム
s = [0, 1, 2, 3, 4] # 元のリスト原本
a = s[:] # s を a へ (shallow)コピー
print('a ⇒', a, '// 元のリスト', end='\n\n')
a[1:1] = ['x']
print("a[1:1] = ['x'] ⇒", a, '// 途中挿入1', end='\n\n')
a = s[:]
a[1:1] = ['x', 'y']
print("a[1:1] = ['x', 'y'] ⇒", a, '// 途中挿入2', end='\n\n')
a = s[:]
a[0:0] = ['x', 'y', 'z']
print("a[0:0] = ['x', 'y', 'z'] ⇒", a, '// 先頭に追加', end='\n\n')
a = s[:]
a[len(a):] = ['x', 'y', 'z']
print("a[len(a):] = ['x', 'y', 'z'] ⇒", a, '// 末尾に追加', end='\n\n')
a = s[:]
a[1:2] = ['x']
print("a[1:2] = ['x'] ⇒", a, '// 互換1', end='\n\n')
a = s[:]
a[1:3] = ['x', 'y']
print("a[1:3] = ['x', 'y'] ⇒", a, '// 互換2', end='\n\n')
a = s[:]
a[1:3] = ['x', 'y', 'z']
print("a[1:3] = ['x', 'y', 'z'] ⇒", a, '// 互換と挿入1', end='\n\n')
a = s[:]
a[1:2] = ['x', 'y', 'z']
print("a[1:2] = ['x', 'y', 'z'] ⇒", a, '// 互換と挿入2', end='\n\n')
a = s[:]
a[1:3] = []
print("a[1:3] = [] ⇒", a, '// 部分削除')
出力結果
a ⇒ [0, 1, 2, 3, 4] // 元のリスト
a[1:1] = ['x'] ⇒ [0, 'x', 1, 2, 3, 4] // 途中挿入1
a[1:1] = ['x', 'y'] ⇒ [0, 'x', 'y', 1, 2, 3, 4] // 途中挿入2
a[0:0] = ['x', 'y', 'z'] ⇒ ['x', 'y', 'z', 0, 1, 2, 3, 4] // 先頭に追加
a[len(a):] = ['x', 'y', 'z'] ⇒ [0, 1, 2, 3, 4, 'x', 'y', 'z'] // 末尾に追加
a[1:2] = ['x'] ⇒ [0, 'x', 2, 3, 4] // 互換1
a[1:3] = ['x', 'y'] ⇒ [0, 'x', 'y', 3, 4] // 互換2
a[1:3] = ['x', 'y', 'z'] ⇒ [0, 'x', 'y', 'z', 3, 4] // 互換と挿入1
a[1:2] = ['x', 'y', 'z'] ⇒ [0, 'x', 'y', 'z', 2, 3, 4] // 互換と挿入2
a[1:3] = [] ⇒ [0, 3, 4] // 部分削除
ステップ使用例
s = [0, 1, 2, 3, 4]
print('s ⇒', s, '// 元のリスト', end='\n\n')
print('s[::2] ⇒', s[::2], '// ステップ例1', end='\n\n')
print('s[0:3:2] ⇒', s[0:3:2], '// ステップ例2', end='\n\n')
print('s[::-1] ⇒', s[::-1], '// ステップ例3', end='\n\n')
print('s[::-2] ⇒', s[::-2], '// ステップ例4', end='\n\n')
print('s[-1:-4:-2] ⇒', s[-1:-4:-2], '// ステップ例5', end='\n\n')
出力結果
s ⇒ [0, 1, 2, 3, 4] // 元のリスト
s[::2] ⇒ [0, 2, 4] // ステップ例1
s[0:3:2] ⇒ [0, 2] // ステップ例2
s[::-1] ⇒ [4, 3, 2, 1, 0] // ステップ例3
s[::-2] ⇒ [4, 2, 0] // ステップ例4
s[-1:-4:-2] ⇒ [4, 2] // ステップ例5
#Python #Python3
#スライス
#スライス操作
#スライス指定
#スライスコピー
#スライス挿入
#スライス追加
#スライス互換
#スライス削除
#ステップ