「:」を使って複数の要素をとってくる
ちょっとインデックスという概念に混乱したのでまとめます
Pythonでスライスしてリストから複数の要素を取得する方法です。
Pythonのリストでは、スライス記法(:)を使うことで、複数の要素を一度に取得することができます。以下に例を示します。
list = [2, 4, 6, 8, 10, 12]
print(list[1:4]) # 出力範囲は開始:未満なので、[4, 6, 8] を取得
print(list[0:4]) # 0を省略可能。結果は [2, 4, 6, 8]
print(list[3:5]) # 開始:未満で [8, 10]
print(list[3:]) # 開始から最後まで取得。結果は [8, 10, 12]
list = [2, 4, 6, 8, 10, 12] print(list[1:4]) # 出力範囲は開始:未満なので、
[4, 6, 8] を取得
print(list[0:4]) # 0を省略可能。
結果は [2, 4, 6, 8]
print(list[3:5]) # 開始:未満で [8, 10]
print(list[3:]) # 開始から最後まで取得。結果は [8, 10, 12]
スライス記法の仕組み
スライスでは、[開始:終了] の形式で指定します。
開始 はインデックス番号で、取得を開始する位置を指定します。
終了 はインデックス番号で、未満の位置までの要素を取得します。
インデックス番号はリストの要素に対して 0 から始まります。
例えば、リスト [2, 4, 6, 8, 10, 12] の場合:
インデックス 0 は 2 を指します。
インデックス 1 は 4 を指します。
インデックス 2 は 6 を指します。
つまりこの例では、0〜5までのインデックス番号があります。
スライスの具体例
例1: list[1:4]
開始 = 1(インデックス番号1はリストの 4)
終了 = 4(インデックス番号4は リストの10 ですが、未満なので 10 は含まれない)
出力: [4, 6, 8]
例2: list[3:5]
開始 = 3(インデックス番号3は 8)
終了 = 5(インデックス番号5は リストの12 ですが、未満なので 12 は含まれない)
出力: [8, 10]
例3: list[3:]
開始 = 3(インデックス番号3は 8)
終了 を指定していないため、開始から最後まで取得する。
出力: [8, 10, 12]
補足
list[:4] のように 開始 を省略すると、リストの最初から 終了 の位置まで取得します。
list[3:] のように 終了 を省略すると、開始 からリストの最後まで取得します。