list = ('Bob', 11, 333, 453.3, 'Ted', 15, 999, 345.5, 'Jeff', 22, 122, 434.7)
嗨,我试图从上述信息建立前10名单。Python前十名单
第一个值:目标, 第二个值:助攻 第三个值:时间出场
我希望能够找到在这种情况下,总 的最高目标,我想给用户得到的结果是:
1)杰夫:22 2)泰德:15 3)鲍勃:11
list = ('Bob', 11, 333, 453.3, 'Ted', 15, 999, 345.5, 'Jeff', 22, 122, 434.7)
嗨,我试图从上述信息建立前10名单。Python前十名单
第一个值:目标, 第二个值:助攻 第三个值:时间出场
我希望能够找到在这种情况下,总 的最高目标,我想给用户得到的结果是:
1)杰夫:22 2)泰德:15 3)鲍勃:11
您应该使用这里的字典:
>>> 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
字典绝对是要走的路,但我不确定我是否会使用元组,除非分数从未真正改变 – PurityLake
@PurityLake好点,修正了这个问题。 –
谢谢你们很棒。 @ Ashwini Chaudhary&PurityLake – user2371027
>>> 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
使用不同的数据结构。 – Blender