7

重複の可能性:
ネストされたリストの2番目の要素による最大値の並べ替えまたは検索。Python

タプルのリストを提供するプログラムを作成しました。2番目の値の最大数でタプルを取得する必要があります。

    (840, 32), (841, 3), (842, 4), (843, 4), (844, 6), (845, 6), (846, 12), (847, 6), (848, 10), (849, 4), ..snip...

タプルの2番目の数値が32であるため、(840,32)を返す必要があります。どうすればこれを達成できますか?私はさまざまな方法を試しましたが、ここで立ち往生し続けるのは完全なコードです:

    D = {}
    def divisor(n):
        global D
        L = []
        for i in range(1,n+1):
        if n % i == 0:
            L.append(i)
            D[n] = len(L)

    for j in range(1001):
        divisor(j)


    print(D.items())
4

1 に答える 1

37

max()で使用lambda:

In [22]: lis=[(840, 32), (841, 3), (842, 4), (843, 4), (844, 6), (845, 6), (846, 12), (847, 6), (848, 10), (849, 4)]

In [23]: max(lis, key=lambda x:x[1])
Out[23]: (840, 32)

またはoperator.itemgetter:

In [24]: import operator 

In [25]: max(lis, key=operator.itemgetter(1))
Out[25]: (840, 32)
于 2012-10-23T21:05:32.243 に答える