4

タプルリストが与えられると、タプルリストの最初の要素の最大値を次のように見つけることができます。

>>> a,b,c,d = (4,"foo"),(9,"bar"),(241,"foobar"), (1,"barfoo")
>>> print max([a,b,c,d])
(241,"foobar")

しかし、2番目の要素の最大値を見つけるのはどうですか?文字列の最大値はどうですか?

4

2 に答える 2

6

パラメータを使用しkeyます:

import operator

max([a, b, c, d], key=operator.itemgetter(1))

文字列のmax()は、文字列のバイト値に基づいています。'a'がより高い'A'ため、ord('a')よりも高くなりord('A')ます。

あなたの例の入力では、 >とは、、および> (長い文字列の文字に続く文字である)よりも長い(より多くの値)(241,"foobar")ため、は依然として最大値です。'f''b''foobar''foo''b'''bfoo

于 2013-01-08T06:01:25.463 に答える
3

さらに短いのは、呼び出し可能オブジェクトとしてラムダを使用することです

max([a, b, c, d], key=lambda t: t[1])
于 2017-03-08T15:30:46.237 に答える