0
list = ('Bob', 11, 333, 453.3, 'Ted', 15, 999, 345.5, 'Jeff', 22, 122, 434.7)

こんにちは、上記の情報からトップ 10 リストを作成しようとしています。

最初の値 : ゴール、2 番目の値 : アシスト 3 番目の値 : 出場時間

この場合、目標の合計が最も高いユーザーを見つけたいと思います。次の結果を得たいと思います。

1) ジェフ: 22 2) テッド: 15 3) ボブ: 11

4

2 に答える 2

1

ここでは辞書を使用する必要があります。

>>> lis = ('Bob', 11, 333, 453.3, 'Ted', 15, 999, 345.5, 'Jeff', 22, 122, 434.7)
>>> dic = { lis[i]: list(lis[i+1:i+4]) for i in xrange(0,len(lis),4)}
>>> dic
{'Bob':  [11, 333, 453.3],
 'Ted':  [15, 999, 345.5],
 'Jeff': [22, 122, 434.7]}

>>> sorted(dic,key = dic.get,reverse = True)
['Jeff', 'Ted', 'Bob']

# To get keys as well as values use dict.items()
>>> for k,v in sorted(dic.items(), key =lambda x:x[1] , reverse = True):
    print k,v[0]
...     
Jeff 22
Ted 15
Bob 11
于 2013-05-27T17:13:21.863 に答える
0
>>> from operator import itemgetter
>>> data = ('Bob', 11, 333, 453.3, 'Ted', 15, 999, 345.5, 'Jeff', 22, 122, 434.7)
>>> for x in sorted(zip(*[iter(data)]*4), key=itemgetter(1), reverse=True):
        print x[0], x[1]


Jeff 22
Ted 15
Bob 11
于 2013-05-27T20:26:18.150 に答える