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

Pythonで単語リストから最も長い単語の長さを求める方法

単語のリストから最も長い単語の長さを取得したい場合、リストを反復処理しながら、組み込みの「len」メソッドを使って各文字列の長さを調べる関数を定義するのが一般的なアプローチです。

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

サンプルコード

def longest_length_string(my_string):
    len_str = len(my_string[0])
    temp_val = my_string[0]

    for i in my_string:
        if(len(i) > len_str):
            len_str = len(i)
            temp_val = i

    print("The word with the longest length is:", temp_val, " and length is ", len_str)

my_string = ["three", "Jane", "quick", "lesson", 'London', 'newyork']
print("The list is :")
print(my_string)
print("The method to find the longest string in the list is called")
longest_length_string(my_string)

実行結果

The list is :
['three', 'Jane', 'quick', 'lesson', 'London', 'newyork']
The method to find the longest string in the list is called
The word with the longest length is: newyork and length is 7

コードの解説

  • まず、「longest_length_string」という名前の関数を定義します。

  • この関数は、文字列のリストを引数として受け取ります。

  • 初期値として、リストの最初の要素の長さとその文字列自体を変数に格納します。

  • forループでリストを反復処理し、各文字列の長さを「len」メソッドで取得して比較します。

  • 現在の最大値より長い文字列が見つかった場合は、最大値と該当する文字列を更新していきます。

  • 最終的に、最も長い単語とその文字数を出力として表示します。

  • サンプルとして文字列のリストを定義し、コンソールに表示した後、このリストを引数として関数を呼び出します。

  • 実行結果はコンソールに出力されます。上記の例では「newyork」が7文字で最も長い単語であることが確認できます。

なお、同様の処理はPythonの組み込み関数「max」を利用し、max(my_list, key=len)のように書くことで、より簡潔に実現することも可能です。状況に応じて使い分けるとよいでしょう。

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

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

  2. Pythonでリスト内の最長等差部分列の長さを求めるプログラム

    問題の概要数値のリスト nums が与えられたとき、そこから取り出せる「最長の等差数列(算術サブシーケンス)」の長さを求めます。ある数列 S が等差数列であるとは、すべての i(0 ≤ i < Sの長さ − 1)に対して、隣接する2項の差 S[i+1] − S[i] が常に同じ値になることを意味します。たとえば、入力が nums = [1, 4, 7, 10, 13, 20, 16] の場合、答えは 6 になります。これは、部分列 [1, 4, 7, 10, 13, 16] を選ぶと、隣接する要素同士の差がすべて 3 で一定だからです。解法のアプローチ:動的計画法(DP)この問題は動的計