11

私のタプルは次のようになります(生成された値の特定のセットに対して)

tTrains = [ (3, ), (1, 3), (6, 8), (4, 6, 8, 9), (2, 4) ]

今、私が見つける必要があるのは、このタプル/リスト内の最長のタプルの長さです。いつでも for ループを使用して、すべてのサブタプルを反復処理して実行できます。しかし、同じ機能があらかじめ定義されているかどうかを尋ねたいと思います。

現在の使用状況

これは私が今のところ使用するものです

max = 0
for i in range( len(tTrains) ):
  if iMax < len( i ):
    iMax = len( i )
4

3 に答える 3

15
tup=[ (3, ), (1, 3), (6, 8), (4, 6, 8, 9), (2, 4) ]
max(map(len,tup))

結果:

4
于 2012-04-07T21:17:12.677 に答える
8

変数名として使用しないでくださいmax。これは、同じ名前の組み込みを隠してしまうためです。このビルトインmax()は、イテラブルの最大値を計算するために使用できます。

現在、タプルのリストがありますが、それらの長さのリストの最大値が必要です。このリストを取得するには、リスト内包表記を使用できます。

[len(t) for t in tuples]

tuple(リストの名前をに変更したことに注意してください。これは、同じ名前の組み込み型を隠してしまうためです。tuples)tuple

これで、このリストに適用できます。max()さらに良いことに、同様の方法で構築されたジェネレーター式に適用できます。

于 2012-04-07T21:14:18.497 に答える
8

別の解決策:

>>> tup=[ (3, ), (1, 3), (6, 8), (4, 6, 8, 9), (2, 4) ]
>>> len(max(tup, key=len))
4

tupこれは、「要素の長さによって「最大」が定義された、の最大要素の長さを教えてください」と訳されます。

于 2012-04-07T22:16:54.477 に答える