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

Pythonで単語のリストから最も長い単語の長さを返す方法

単語のリストから最も長い単語の長さを取得したい場合、リストを引数として受け取るメソッドを定義するのが基本的なアプローチです。このメソッドは、リスト内の各要素の文字数を順番に比較し、最大の長さを特定して返します。

サンプルコード

以下に具体的な実装例を示します。

def find_longest_length(my_list):
    max_length = len(my_list[0])
    temp = my_list[0]

    for element in my_list:
        if len(element) > max_length:
            max_length = len(element)
            temp = element
    return max_length

my_list = ["ab", "abc", "abcd", "abcde"]
print("The list is :")
print(my_list)
print("The result is :")
print(find_longest_length(my_list))

出力

The list is :
['ab', 'abc', 'abcd', 'abcde']
The result is :
5

コードの解説

  • 「find_longest_length」という名前のメソッドを定義し、リストを引数として受け取ります。

  • まず、リストの最初の要素の長さを初期値として変数「max_length」に代入します。同時に、その要素自体も変数「temp」に保存しておきます。

  • forループでリストを反復処理し、各要素の長さが現在の最大値よりも大きいかどうかを確認します。

  • より長い要素が見つかった場合は、その長さと要素をそれぞれ「max_length」と「temp」に更新します。

  • ループが完了したら、最大の長さを戻り値として返します。

  • メソッドの外側でリストを定義し、コンソールに表示します。

  • 引数を渡してメソッドを呼び出し、その結果をコンソールに出力します。

補足:max()関数を使った簡潔な書き方

Pythonでは、組み込み関数 max() のkey引数に len を指定することで、同じ処理を1行で実現できます。可読性が高く、実務でもよく使われる書き方です。

my_list = ["ab", "abc", "abcd", "abcde"]
longest_word = max(my_list, key=len)
print("最も長い単語:", longest_word)
print("その長さ:", len(longest_word))

このように、条件分岐を使った手動の比較処理でも、標準ライブラリの機能を活用しても、目的の結果は同じように得られます。状況やコードの設計方針に応じて使い分けるとよいでしょう。

  1. Pythonで単語リストから最長の接頭辞(プレフィックス)連鎖を求める方法

    この記事では、Pythonを使って「単語リストの中から、前の単語が次の単語の接頭辞(プレフィックス)になっており、次の単語にはちょうど1文字だけ新しい文字が追加されている」という条件を満たす最長の連鎖(シーケンス)の長さを求めるプログラムを紹介します。問題の概要小文字の文字列からなるリスト w が与えられます。この中から、以下の条件を満たす最長のシーケンスを見つけ、その長さを返します。シーケンス内の各単語は、直前の単語の接頭辞である次の単語は、前の単語にちょうど1文字追加したものになっている例えば、入力が w = [pqr, pq, m, mn, pqrs] の場合、出力は 3 になります。こ

  2. Pythonでn分木の最長パスの長さを求めるプログラムの書き方

    各要素が (u, v) という形式を持ち、u が v の親であることを表す辺リストが与えられているとします。このとき、木の中で最も長いパスの長さを求める必要があります。ここでいうパスの長さとは、「そのパスに含まれるノードの総数 + 1」のことです。 たとえば、入力が下図のような n 分木だった場合を考えてみましょう。 この場合の出力は 5 になります。なぜなら、パス [1, 4, 5, 7] には合計 4 つのノードが含まれており、パスの長さは 1 + 4 = 5 となるからです。 解き方のアプローチ この問題は、幅優先探索(BFS)を2回実行するという定番テクニックで効率よく解けます。まず