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

Pythonのネストされたリストで最大長のサブリストを検索する


Pythonでデータ分析を行う場合、ネストされたリストを扱うことがよくあります。この記事では、ネストされたリスト内の要素の中から最長のリストを見つけて、その長さとともに印刷する方法を説明します。

ラムダとマップの使用

ネストされたリストを宣言し、その長さとともにラムダ関数への入力として提供します。最後に、max関数を適用して、最大長とそのようなリストの長さのリストを取得します。

def longest(lst):
   longestList = max(lst, key = lambda i: len(i))
   maxLength = max(map(len, listA))
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,65,2]]
print("Longest List and its length:\n",longest(listA))

出力

上記のコードを実行すると、次の結果が得られます-

Longest List and its length:
([2, 45, 6, 7], 4)

lenとmaxの使用

このアプローチでは、最初に最大長のサブリストを見つけ、次にリストの要素をループして、どのサブリストがその長さに一致するかを見つけます。この計算には、max関数とlen関数を使用します。

def longest(lst):
   longestList = []
   maxLength = max(len(x) for x in listA)
   for i in listA:
      if len(i) == maxLength :
         longestList = i
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,6,2]]
print("Longest List and its length:\n",longest(listA))

出力

上記のコードを実行すると、次の結果が得られます-

Longest List and its length:
([2, 45, 6, 7], 4)

地図の使用

これは上記のプログラムと同様のアプローチですが、map関数を使用して最大長のサブリストを見つけています。

def longest(lst):
   longestList = []
   maxLength = max(map(len,listA))
   for i in listA:
      if len(i) == maxLength :
         longestList = i
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,6,2]]
print("Longest List and its length:\n",longest(listA))

出力

上記のコードを実行すると、次の結果が得られます-

Longest List and its length:
([2, 45, 6, 7], 4)

  1. Pythonで指定されたリストからk個の最長の単語を検索する

    さまざまな長さの多くの単語を含むリストから、上位n個の最長の単語を選択する必要があるシナリオがあります。この記事では、それを実現するためのさまざまなアプローチを紹介します。 count()およびsorted()を使用 まず、リストの要素を逆の順序で並べ替えて、リストの先頭で最も長い単語が使用できるようにします。次に、各単語の長さを見つけて、カウントの結果を変数に追加します。最後に、必要な最長の単語の数を切り取ります。 例 from itertools import count def longwords(l, x):    c = count()   &nb

  2. Pythonで指定されたネストされたリストで最大値のサブリストを検索します

    リストには、その要素として他のリストを含めることができます。この記事では、特定のリストに存在する最大値のサブリストを見つけることに等しいです。 maxとlambdaを使用 max関数とLambda関数を一緒に使用して、最大値を持つサブリストを指定できます。 例 listA = [['Mon', 90], ['Tue', 32], ['Wed', 120]] # Using lambda res = max(listA, key=lambda x: x[1]) # printing output print("Given List:\n