メインコンテンツにスキップ
モジュール 4 · レッスン 2 / 4コース内の 14/36~10 min
モジュールのレッスン (2/4)

スライスとインデックス作成

Python では、文字列は 文字のシーケンスです。次のようにアクセスできます。 インデックスによって個々の文字を抽出し、スライスで部分文字列を切り出す 構文 [start:stop:step] — リストの場合とまったく同じです。

正のインデックスと負のインデックス

Python
s = "Python"
#    0123456
#   -6-5-4-3-2-1
s[0]    # 'P'
s[5]    # 'n'
s[-1]   # 'n'   (ultimo)
s[-2]   # 'o'   (penultimo)

範囲外のアクセスでは IndexError が発生します。

スライス [start:stop:step]

Python
s = "Python"
s[0:3]    # 'Pyt'      indici 0,1,2 (stop ESCLUSO)
s[2:]     # 'thon'     dal 2 alla fine
s[:3]     # 'Pyt'      dall'inizio fino al 3 (escluso)
s[:]      # 'Python'   copia completa
s[-3:]    # 'hon'      ultimi 3
s[:-2]    # 'Pyth'     tutto tranne gli ultimi 2

インデックス作成とは異なり、スライスではインデックスが切れている場合でもエラーが発生しません 範囲: 可能な限りのことを切り開きます。

3 番目の引数: step

Python
s = "Python"
s[::2]    # 'Pto'    salta uno sì uno no
s[1::2]   # 'yhn'    dispari
s[::-1]   # 'nohtyP' INVERSIONE (idiom famoso)

s[::-1] は、文字列を反転する慣用的な方法です。

長さと収容力

Python
len("Python")        # 6
"th" in "Python"     # True
"java" in "Python"   # False

負のインデックスとスライスのステップ

スライスの完全な構文は s[start:stop:step] です。 start と stop を省略し、負の step または -1 (s[::-1]) を設定すると、文字列が逆になります。負のインデックス -1 は常に文字列の最後の文字を表し、-2 は最後から 2 番目の文字などになります。

試してみてください

運動#python.m4.l2.e1
試行回数: 0読み込み中…

`word = 'PROGRAMMAZIONE'` とすると、その逆を `reversed_word` で取得します。 「reversed_word」を評価します。

エディターを読み込み中…
ヒントを表示

単語[::-1]

3 回の試行後に解決策が利用可能になります

復習演習

運動#python.m4.l2.e2
試行回数: 0読み込み中…

`email = 'ada@example.com'` とすると、.find でインデックスを見つけた後、スライスを使用してドメイン ('@' 以降のすべて) を `domain` に抽出します。 「ドメイン」を評価します。

エディターを読み込み中…
ヒントを表示

メール[メール.find('@') + 1:]

3 回の試行後に解決策が利用可能になります

追加の課題

運動#python.m4.l2.e3
試行回数: 0読み込み中…

文字列 \`word = "pythonista"\` を指定すると、スライスを使用して最初の 3 文字と最後の 3 文字を抽出し、それらを新しい文字列 \`short_word\` に連結します。最後に、\`short_word\` を評価します (\`'pytsta'\` が生成されるはずです)。

エディターを読み込み中…
ヒントを表示

The first 3 characters are word[:3], the last 3 are word[-3:]. Concatenate the two slices.

3 回の試行後に解決策が利用可能になります