私はリストLを持っています
L = [[1,2,3],[5,7],[1,3],[77]]
[1,2,3]は長さ3であり、4つのサブリストの中で最も長いため、ループすることなく最長のサブリストの長さを返します。この場合は3です。len(max(L))を試しましたが、これではうまくいきません。これを行う方法はありますか、それともループが私の唯一の方法ですか?
私はリストLを持っています
L = [[1,2,3],[5,7],[1,3],[77]]
[1,2,3]は長さ3であり、4つのサブリストの中で最も長いため、ループすることなく最長のサブリストの長さを返します。この場合は3です。len(max(L))を試しましたが、これではうまくいきません。これを行う方法はありますか、それともループが私の唯一の方法ですか?
max(L,key=len)
最長の長さのオブジェクトを提供[1,2,3]
します(あなたの例では)-実際に長さを取得するには(それがすべての場合)、少し醜いことを行うことができますlen(max(L,key=len))
-私はそれを2行に分割します. または、ecatamur が提供するバージョンを使用できます。
これらの回答にはすべてループがあります。私の場合、ループは暗黙的であり、通常は最適化されたネイティブ マシン コードで実行されることを意味します。考えてみれば、どの要素が一番長いか、いちいち見ないでどうやってわかるの?
key=function
最後に、これは に固有の機能ではないことに注意してくださいmax
。多くの Python ビルトイン ( max
、min
、sorted
、itertools.groupby
...) は、この特定のキーワード引数を使用します。それがどのように機能し、通常は何をするのかを理解するために少し時間を費やすことは間違いなく価値があります.
理解してみてください:
max(len(l) for l in L)