試してみてください。
max(nested_list, key=lambda x: x[1])
または
import operator
max(nested_list, key=operator.itemgetter(1))
最初の項目は常に'a'
になります場合は、一部に飛び込むために喜んでいる場合は、あなただけの
max(nested_list)
を行うことができますあなたは任意のサブリストに対してこれをしたいと思っています(1つのレベルだけです。[12 、 'a'、12、42、 'b'])、あなたは何かのようにすることができます。いずれの場合においても
import numbers
max(nested_list, key=lambda x: max(i for i in x
if isinstance(i, numbers.Integral)))
あなたがnested_list
の要素は、実際のリストにあることをわからない場合、あなたは
import collections
max((s for s in nested_list
if isinstance(s, collections.Sequence)),
key=some_key_function)
を行うと、ちょうどそれを独自の工夫や1のキー機能を渡すことができますこの答えで他のものの
lambda x: x[1]
対operator.itemgetter(1)
の質問では、私はプロファイルします。原理的には、itemgetter
は正しい方法でなければなりませんが、operator
のソリューションは、ラムダ関数のパフォーマンスが「バグ」(私はこの用語をゆるやかに使用し、コードはまだ動作します)のパフォーマンスがoperator
であることがわかりました。パフォーマンスが問題ではない場合(そしておそらくそうであれば)、私の好みはitemgetter
ですが、余分なものを避けたい人もいます。import
私はあなたのソリューションを把握するために私のpythonの本に頼らなければなりませんでした。だから、今私は解決策を持っているだけでなく、もう少しPythonを理解しています。ありがとう! –