Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定した文字数より長い単語を抽出する方法

Pythonでは、文字列の中から特定の長さよりも長い単語を取り出したい場面がよくあります。そのような場合には、文字列を単語に分割して順番に調べる関数を定義し、各単語の長さを指定した長さと比較するのが基本的なアプローチです。条件に一致した単語だけをリストにまとめて返すことで、目的の結果を得られます。

サンプルコード

以下に具体的な実装例を示します。ここでは、3文字より長い単語を抽出しています。

def string_check(string_length, my_string):
    result_string = []
    words = my_string.split(" ")
    for x in words:
        if len(x) > string_length:
            result_string.append(x)
    return result_string

string_length = 3
my_string = "Python is always fun to learn"

print("The string is :")
print(my_string)
print("\nThe words in the string with length greater than", string_length, "is :")
print(string_check(string_length, my_string))

実行結果

The string is :
Python is always fun to learn

The words in the string with length greater than 3 is :
['Python', 'always', 'learn']

コードの解説

  • まず string_check という名前の関数を定義します。この関数は、対象となる文字列と基準となる長さを引数として受け取ります。

  • 関数内では、結果を格納するための空のリスト result_string を用意します。

  • split(" ") メソッドを使って、文字列をスペース区切りで単語ごとに分割し、変数 words に代入します。

  • for ループで各単語を順に取り出し、len() 関数でその単語の長さを取得して、指定された長さと比較します。

  • 単語の長さが基準値より大きい場合、その単語を append() メソッドでリストに追加します。

  • すべての単語をチェックし終えたら、条件に一致した単語が入ったリストを return で返します。

  • 関数の外側では、基準となる長さ(ここでは3)と対象の文字列をそれぞれ定義します。

  • 元の文字列をコンソールに表示した後、関数を呼び出して抽出結果を出力します。

ポイントまとめ

この手法の核となるのは split() による文字列の分割と len() による長さの取得です。リスト内包表記を使えば、同じ処理を [x for x in my_string.split(" ") if len(x) > string_length] のように1行で簡潔に書くこともできます。用途に応じて、読みやすい書き方を選択するとよいでしょう。

  1. Pythonでターゲット文字より大きい最小の文字を二分探索で見つける方法

    ソート済みの小文字アルファベットのリスト letters と、ターゲットとなる文字 t が与えられたとき、リストの中から「t よりも大きい文字のうち最小のもの」を探す問題を考えてみましょう。このとき、文字は循環(ラップアラウンド)するとします。つまり、target = z で letters = [a, b] のような場合、z より大きい文字が存在しないため、先頭に戻って答えは a になります。例えば、入力が [c, f, j] で target が a の場合、a より大きい最小の文字は c なので、出力は c となります。解き方のアプローチ:二分探索リストがソート済みであるため、二分探索(

  2. 文字列の中から偶数の長さの単語を出力するPythonプログラム

    本記事では、与えられた問題を解決するための考え方と実装方法について解説します。Pythonの基本的な文字列操作を組み合わせることで、初心者の方でも簡単に実装できる内容となっています。 問題文 文字列が与えられたとき、その中に含まれる単語のうち、文字数が偶数であるものをすべて画面に表示するプログラムを作成します。 例えば、「tutorial point」という文字列が入力された場合、「tutorial」は8文字(偶数)なので出力され、「point」は5文字(奇数)なので出力されません。 解決のアプローチ この問題は、以下の手順で解決できます。 split()関数を使って、入力文字列を空白区切り