2017-05-23 4 views
2

のは、私がリストを持っているとしましょう:リスト内のリストを比較し、最初の値が最も大きいリストを選択するにはどうすればよいですか?

def returnBiggestStartingList: 

    L1 = [ [1,2,3,4], [5,6,7,8], [7,8,9,10] ] 

は私がL1内部のリストのいずれかを返すようにしたいです。私が返りたいものは、0番目の要素が一番大きいものです。たとえば、上記の例では、最初の要素が他のすべての配列の最初の要素よりも高いため(7が1と5より大きい)L1 [2]を返したいとします。

0番目の要素が1つ以上のリストで同じであれば、私はまた

誰もそのような場合には、私は第二の要素の上に移動し、(などなど)、それらを比較するだろう、を考慮する必要があり私はこれをどのようにすることができますか?

+6

Iトン(max)は大丈夫です。 –

+0

これは純粋なPythonでなければならないのですか、numpyを使用できますか? –

+0

[リストのリストから最大値を取得しますか?](https://stackoverflow.com/questions/33269530/get-max-value-from-a-list-with-lists) – RomanPerekhrest

答えて

6

あなたが説明しているのは、リストの自然順です。したがって、maxを直接使用することができます。また、すべてのリストのサイズが同じ場合(リストの長さが異なる場合は
)、リストが短い場合は同じ最初の要素が長いリストと比較します。ex:[7,8,9] < [7,8,9,10]

L1 = [ [1,2,3,4], [5,6,7,8], [7,8,9,11], [7,8,9,10] ] 

print(max(L1)) 

結果、あまりにもあなたのニーズにOKする必要があります:

[7, 8, 9, 11] 
+0

これは私にとって正しいことです...しかし、私はリストの_size_が何かと関係しているかどうか分かりません;-) – mgilson

+1

リストが短い場合は、同じ最初の要素を持つ長いリストと比較します。しかし、おそらくこれも期待されています。 –

+0

これは完璧です..ありがとう! –

0

あなたはこれを試すことができます。

def returnBiggestStartingList(L1): 

    return [i for i in L1 if i[0] == max(zip(*L1)[0])][0] 
関連する問題