Python slice() 関数

Python3 組み込み関数


slice()Python でスライスオブジェクトを作成するための組み込み関数です。

スライスオブジェクトはシーケンスのスライス範囲を指定するために使用され、リスト、タプル、文字列など、スライス操作をサポートする任意の場所で使用できます。

単語の意味: slice「スライス」という意味で、スライスオブジェクトを作成するために使用します。


基本構文とパラメータ

構文形式

slice(stop)
slice(start, stop)
slice(start, stop, step)

パラメータの説明

  • パラメータ start(省略可能):
    • 型: 整数
    • 説明: スライスの開始位置。デフォルトは 0 です。
  • パラメータ stop:
    • 型: 整数
    • 説明: スライスの終了位置(含みません)。
  • パラメータ step(省略可能):
    • 型: 整数
    • 説明: スライスのステップ幅。デフォルトは 1 です。

関数の説明

  • 戻り値: スライスオブジェクトを返します。
  • 特徴: スライスオブジェクトは繰り返し使用でき、非常に便利です。

例

例 1:スライスオブジェクトの作成

例

# スライスオブジェクトを作成
s1 = slice(5)      # 0から5まで
s2 = slice(1, 5)    # 1から5まで
s3 = slice(0, 10, 2)  # 0から10まで、ステップ2

# リストのスライスで使用
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(my_list[s1])  # 出力: [0, 1, 2, 3, 4]
print(my_list[s2])  # 出力: [1, 2, 3, 4]
print(my_list[s3])  # 出力: [0, 2, 4, 6, 8]

実行結果の予想:

[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[0, 2, 4, 6, 8]

コードの解説:

  1. slice(5)以下と同等[0:5]。
  2. slice(1, 5)以下と同等[1:5]。
  3. slice(0, 10, 2)以下と同等[0:10:2]。

例 2:スライスオブジェクトの属性

例

# スライスオブジェクトの属性を確認
s = slice(1, 10, 2)
print(s.start)   # 出力: 1
print(s.stop)    # 出力: 10
print(s.step)    # 出力: 2

# 負のインデックス
s = slice(-3, -1)
print(s.start)   # 出力: -3
print(s.stop)    # 出力: -1

実行結果の予想:

1
10
2
-3
-1

コードの解説:

  • スライスオブジェクトには start、stop、step の3つの属性があります。
  • 負のインデックスをサポートします。

例 3:実際の応用

例

# 再利用可能なスライスを作成
first_three = slice(3)
last_three = slice(-3, None)

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(my_list[first_three])  # 出力: [1, 2, 3]
print(my_list[last_three])    # 出力: [7, 8, 9]

# 多次元スライスに使用
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row = slice(0, 2)  # 最初の2行
col = slice(1, 3)  # 2列目から3列目
print([row[col] for row in matrix[row]])
# 出力: [[2, 3], [5, 6]]

実行結果の予想:

[1, 2, 3]
[7, 8, 9]
[[2, 3], [5, 6]]

スライスオブジェクトの主な利点は再利用が可能なことで、コードをより明確にします。


Python3 組み込み関数


その他の拡張