Pythonで文字列の3番目から5番目までの文字を抽出・表示する方法
Pythonのスライス機能を使った部分文字列の取得
Pythonには「スライス」という便利な機能があり、これを使うと元の文字列から任意の部分文字列を簡単に取り出すことができます。「文字列の3番目から5番目までの文字だけを表示したい」といったケースで活躍します。
スライス演算子[:]の基本的な使い方
スライス演算子[:]を使用する際は、2つのオペランド(整数値)を指定します。
- 第1オペランド:スライスの開始位置となる文字のインデックス
- 第2オペランド:スライスの終了位置にある文字の「次の」文字のインデックス
ここで重要なのは、Pythonのシーケンス型(文字列やリストなど)のインデックスは0から始まるという点です。人間が数える「1番目」の文字は、プログラム上ではインデックス0に対応します。
実際のコード例
>>> string = 'abcdefghij' >>> string[2:5] 'cde'
この例では、文字列'abcdefghij'に対してstring[2:5]と指定しています。3番目の文字である'c'はインデックス2に位置し、5番目の文字である'e'はインデックス4に位置します。したがって、第1オペランドに2、第2オペランドに5を指定することで、部分文字列'cde'が正しく取得できるのです。
補足:ステップ(増分)の指定も可能
スライス演算子には、第3のオペランドとして「ステップ」(何文字おきに取得するか)を指定することもできます。例えばstring[2:5:1]のように記述し、省略した場合はデフォルト値の1が適用されます。この仕組みを理解しておくと、より柔軟な文字列操作が可能になります。
-
Python入門:文字列リストのインクリメンタルスライス連結を実装する方法
文字列リストに対して「インクリメンタルスライス連結」を行いたい場面は意外と多くあります。これは、リスト内の各要素から先頭部分だけを切り出し、その切り出す文字数を要素ごとに1文字ずつ増やしながら連結していく処理です。このような処理を実現するには、シンプルな反復処理(forループ)とリストのスライシングを組み合わせるのが最も基本的なアプローチです。Pythonでは特別なライブラリを使わずとも、数行のコードで実装できます。サンプルコード以下に具体的な実装例を示します。my_list = [pyt, is, all, fun] print(元のリスト:) print(my_list) my_res
-
Pythonで二分木の葉から始まる辞書順最小の文字列を求める方法
問題概要二分木のルートノードが与えられます。各ノードには0から25までの値が格納されており、これらは文字「a」から「z」に対応しています。つまり、0は「a」、1は「b」というように対応付けられています。このとき、木の葉から始まってルートで終わるパスの中で、辞書順(lexicographical order)で最も小さい文字列を見つける必要があります。例えば、次のような木を考えてみましょう。この場合、パスの値の並びは [0, 3, 25] となるため、出力は adz になります。解法のアプローチこの問題はDFS(深さ優先探索)を使って解くことができます。以下の手順で進めます。DFS走査用のメソッ