我想这样就可以了
sorted(zip(score, name), reverse=True)[:3]
这样你就明白发生了什么:
zip http://docs.python.org/library/functions.html#zip: 将 iterables 作为参数,并从每个 iterables 中获取一个元素,将它们放入一个元组中。
So:
>>> zip(score, name)
[(350, 'Ryan'), (914, 'Stacy'), (569, 'Jenna'), (223, 'Peter'), (947, 'Sophie'), (284, 'Bryan'), (567, 'Cole'), (333, 'Andrea'), (697, 'Emily'), (245, 'Blake'), (227, 'Mike'), (785, 'Stephan'), (120, 'Rob'), (794, 'Eliza'), (343, 'Heather'), (773, 'Daniel'), (293, 'Elisabeth'), (995, 'Samantha')]
sorted http://docs.python.org/library/functions.html#sorted: 对数据进行排序。默认情况下,元组元素按照 0 索引中的元素进行排序,因此本例中的分数。 Reverse=True 将首先降序排序。
最后,[:3]
是切片表示法,表示给我从开始到第三个元素的所有元素。这也可以写成[0:3]