2012-03-15 5 views
2

の配列から最大/最小n番目の要素を持つ抽出タプルが、私はこのようになりますいくつかのデータがあります。のPython:Pythonでのタプル

A = [ 
(-9, [(2, 3), (5, 2), (3,1)]), 
(-8, [(3, 4), (5, 6), (7, 6)]), 
(-8, [(0, 0), (5, 0), (1, 6)]), 
(-9, [(2, 3), (4, 2), (4, 5)]), 
] 

要素または要素を抽出するための最も神託の方法です何をしています最初のエントリに最大値がありますか?データ構造の変更はオプションではありません。

この例では、2つの中間タプルを返すことを目標としています。

乾杯!

+1

'MAX(A、キー=ラムダX:X [0])'要素の_one_を取得します。一般に、 'max()'や 'sorted()'などの関数の 'key ='パラメータは、より複雑な比較に使用できます。 – voithos

答えて

8

はリスト内包してみてください:

max_value = max(x[0] for x in A) 
print [x for x in A if x[0] == max_value] 

は、それがオンラインで作業を参照してください:ideone

+1

それは毎回 'max()'を実行しませんか? –

+1

@RikPoggi:あなたは正しいと思います。おそらくサンプルデータの深刻な問題ではありませんが、リストに何千ものアイテムが含まれていると問題になります。最大値が1回だけ計算されるようにコードを更新しました。 –

関連する問題