Menu
Coddy logo textTech

リストのスライス パート2

CoddyのPythonジャーニー「Fundamentals」セクションの一部 — レッスン 65/77。

スライスには、もう一つのステップパラメータがあります:lst[start:stop:step]。例えば、次のリストを考えてみましょう:

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

インデックス1から8までの要素を1つおきに取得します:

print(numbers[1:8:2])
# 出力: [1, 3, 5, 7]

インデックス2から3要素ごとに取得します:

print(numbers[2::3])
# 出力: [2, 5, 8]

スライシングは負のインデックスもサポートしています。

末尾から数える:

print(numbers[-3:])
# 出力: [7, 8, 9]

ここで、-3は「末尾から3番目の位置から開始する」ことを意味します

末尾までカウント:

print(numbers[:-2])    
# 出力: [0, 1, 2, 3, 4, 5, 6, 7]

ここで、-2は「末尾から2つ手前の位置で停止する」(その位置は含まない)という意味です。

負のステップによる反転:

print(numbers[::-1])
# 出力: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • 最初の : の前の空白は、「最初から開始する」ことを意味します
  • : の間の空白は、「最後まで進む」ことを意味します
  • -1 は「1ステップずつ後ろに戻る」ことを意味します 
challenge icon

チャレンジ

簡単

入力としてリスト(given)を受け取り、以下のスライシング操作に基づいて3つの新しいリストを出力するプログラムを作成してください:

  • インデックス 1(2番目の要素)から始まり、3つごとの要素を含むリスト
  • 6番目の要素から1番目の要素までを逆順にすべて含むリスト
  • リストの中央から最後までの、2つごとの要素を含むリスト

チートシート

スライスの構文: lst[start:stop:step]

スライスの例:

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

# インデックス1から8までの1つ飛ばしの要素
print(numbers[1:8:2])  # Output: [1, 3, 5, 7]

# インデックス2から3つごとの要素
print(numbers[2::3])  # Output: [2, 5, 8]

# 最後の3つの要素
print(numbers[-3:])  # Output: [7, 8, 9]

# 最後の2つを除くすべての要素
print(numbers[:-2])  # Output: [0, 1, 2, 3, 4, 5, 6, 7]

# リストを逆順にする
print(numbers[::-1])  # Output: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

重要なポイント:

  • 負のインデックスはリストの末尾から数えます
  • 最初の : の前の空欄は「最初から開始」を意味します
  • : の間の空欄は「最後まで」を意味します
  • 負のステップは順序を逆にします

自分で試してみよう

lst = input().split(",")
# 以下にコードを記述してください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン