インデックス指定とスライシング
メニューを表示するにはスワイプしてください
文字列はシーケンスであり、各文字には位置(インデックス)があります。Pythonではゼロベースのインデックスが使われるため、最初の文字はインデックス0になります。インデックス指定で単一の文字、スライスで文字の範囲を取得できます。
インデックス指定
角括弧内に単一の位置を指定します。
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
負のインデックスは末尾から数える。
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
インデックスは存在する位置を指定する必要があり、そうでない場合は IndexError となる。
12s = "python" print(s[10]) # IndexError: string index out of range
また、文字列はイミュータブルであるため、s[i]で値を読み取ることはできますが、代入はできません。
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
スライス
スライスは start:stop:step を使用し、新しい文字列を返します。stop は除外されます(含まれません)。
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
スライスは柔軟です:範囲外になっても有効な範囲に自動調整され、エラーにはなりません。
12s = "python" print(s[0:100]) # 'python'
負のインデックスと反転
スライス内で負のインデックスを組み合わせることができ、負の step を指定すると逆方向に進みます。
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
注意
step は 0 にできません。step を省略すると 1 になります。start または stop を省略すると「先頭から」または「末尾まで」を意味します。
1. このコードはどのような値を出力しますか?
2. このコードはどのような値を出力しますか?
3. u = "hello" に対してエラーが発生する文はどれですか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 2