リスト内の文字列から指定範囲をスライスして抽出するPythonプログラム
リスト内の各要素に対して特定の範囲を取り出したい場合、リストを繰り返し処理しながら「:」演算子によるスライシングを組み合わせることで簡単に実現できます。本記事では、その具体的な方法をサンプルコードとともに解説します。
サンプルコード
以下は、リスト内の各文字列から指定した範囲を切り出すプログラムの例です。
my_list = ["Hi", "there", "how", 'are', 'you']
print("The list is : ")
print(my_list)
m, n = 2, 4
my_result = []
for elem in my_list:
my_result.append(elem[m : n + 1])
print("The sliced strings are : ")
print(my_result)
実行結果
The list is : ['Hi', 'there', 'how', 'are', 'you'] The sliced strings are : ['', 'ere', 'w', 'e', 'u']
処理の流れ
まず対象となるリストを定義し、コンソールに表示します。
切り出す範囲を表す2つの変数(m と n)に値を設定します。
結果を格納するための空のリストを用意します。
元のリストを繰り返し処理し、各要素から
m番目からn番目までの部分文字列を切り出して、空のリストに追加していきます。このとき「:」演算子を使ったスライス構文
elem[m : n + 1]を利用しています。n + 1としているのは、Pythonのスライスでは終端のインデックスが含まれないためです。最後に、切り出した結果をコンソールに出力します。
補足:リスト内包表記でより簡潔に書く
同じ処理は、リスト内包表記を使えば1行で書くこともできます。
my_result = [elem[m : n + 1] for elem in my_list]
こちらの方がコードが短く読みやすいため、実際の開発ではよく使われる書き方です。
-
文中の各単語を逆順に並べ替えるPythonプログラムの書き方
この記事では、Pythonの組み込み関数を使って、文の中の各単語を逆順にする方法を解説します。処理の流れはシンプルで、まず文を単語のリストに分割し、次に各単語を反転させて新しいリストを作成し(ここではリスト内包表記を活用)、最後にそのリストを結合して新しい文を生成します。 実行例 入力 :: PYTHON PROGRAM 出力 :: NOHTYP MARGORP アルゴリズム ステップ1 : 文を入力し、変数 s に格納する。 ステップ2 : 文を単語のリストに分割する。 w = s.split( ) ステップ3 : 各単語を反転させ、新しい単語リスト nw を作成する。 ステップ
-
Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで
Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5