[fr.index(x) for x in sorted(fr, reverse=True)[:3]]
当我们比较两者的速度时。。。
import heapq
fr = [8, 4, 1, 1, 12]
def method_one():
for i in xrange(10000):
res = [fr.index(x) for x in sorted(fr, reverse=True)[:3]]
def method_two():
for i in xrange(10000):
heapq.nlargest(3, xrange(len(fr)), key=fr.__getitem__)
if __name__ == '__main__':
import timeit
print timeit.repeat(stmt='method_one()',
setup='from __main__ import method_one',
number=100)
print timeit.repeat(stmt='method_two()',
setup='from __main__ import method_two',
number=100)
将^{} 与key=
fr.__getitem__
一起使用:如果需要值本身,则:
另一种方法是:
当我们比较两者的速度时。。。
我们得到:
相关问题 更多 >
编程相关推荐