相关疑难解决方法(0)

在平局的情况下,Python选择哪个最大值?

max()在Python中使用函数来查找列表中的最大值(或元组,字典等)时,最大值是一个平局,Python选择哪一个?是随机的吗?

例如,如果一个具有元组列表并且一个key=基于元组的第一个元素选择最大值(使用a )但是存在不同的第二个元素,则这是相关的.Python如何选择哪一个作为最大值?

我在使用Python v2.6.

python max

70
推荐指数
3
解决办法
2万
查看次数

了解性能差异

回答这个问题我遇到了一个有趣的情况2类似的代码片段表现完全不同.我在这里只是要了解其原因,并提高我对此类案例的直觉.

我将改编Python 2.7的代码片段(在Python 3中,性能差异是相同的).

from collections import OrderedDict
from operator import itemgetter
from itertools import izip

items = OrderedDict([('a', 10), ('b', 9), ('c', 4), ('d', 7), ('e', 3), ('f', 0), ('g', -5), ('h', 9)])

def f1():
    return min(items, key=items.get)

def f2():
    return min(items.iteritems(), key=itemgetter(1))[0]


from timeit import Timer
N = 100000

print(Timer(stmt='f1()', setup='from __main__ import f1').timeit(number = N))
print(Timer(stmt='f2()', setup='from __main__ import f2').timeit(number = N))
Run Code Online (Sandbox Code Playgroud)

输出:

0.603327797248
1.21580172899
Run Code Online (Sandbox Code Playgroud)

第一个解决方案必须进行查找OrderedDictionary以获取value每个key.第二种解决方案只是遍历OrderedDictionary键值对,它们必须打包成元组.

第二种解决方案慢2倍. …

python python-2.7

8
推荐指数
1
解决办法
389
查看次数

标签 统计

python ×2

max ×1

python-2.7 ×1