在一个编码示例中,我看到以下代码片段,如果列表为空则返回True,否则返回False
return a == []
原因是为了避免写作
if a:
return False
else:
return True
在一个有数千个条目的真实例子中,我应该注意哪些速度差异?
解决方法:
如果你问一个函数放入哪个方法会更快(因此返回),那么我使用timeit模块进行一些测试.我将每个方法放在一个函数中,然后运行程序以查看哪个函数运行得更快.这是程序:
import timeit
def is_empty2():
a = []
if a:
return True
else:
return False
def is_empty1():
a = []
return a == []
print("Time for method 2:")
print(timeit.timeit(is_empty2))
print("")
print("Time for method 1:")
print(timeit.timeit(is_empty1))
我运行程序五次,每次都记录每个功能的速度.在获得每次平均值之后,我想出了以下内容:
method one speed(milliseconds): 0.2571859563796641
----------------------------- ------------------
method two speed(milliseconds): 0.2679253742685615
至少从上面的测试来看,你在问题中描述的第一种方法比第二种方法略快.当然,上述数字可能会根据这两个函数的确切内容而发生巨大变化.
不过,我同意卡尔克在评论中所说的话.选择最清晰简洁的一个.不要仅根据速度选择一种选择.用Guido van Rosom的话说:可读性很重要.
标签:python
来源: https://codeday.me/bug/20190527/1165807.html