相关疑难解决方法(0)

bool()和operator.truth()之间有什么区别?

bool()并且operator.truth()都测试一个值是真实的还是虚假的,它们看起来与文档相似,它甚至在truth()文档中说:

这相当于使用bool构造函数.

但是,truth()它的速度bool()是简单测试的两倍(显示的是Python 3.6时序,但2.7类似):

from timeit import timeit
print(timeit('bool(1)', number=10000000))
# 2.180289956042543
print(timeit('truth(1)', setup='from operator import truth', number=10000000))
# 0.7202018899843097
Run Code Online (Sandbox Code Playgroud)

那有什么区别?我应该用truth()而不是bool()吗?

此问题下与ShadowRanger进行广泛的评论和讨论之后,出现了此问答.

python performance boolean python-2.7 python-3.x

14
推荐指数
1
解决办法
220
查看次数

在 Python 中的列表中创建列表

我有一个名为 values 的列表,其中包含一系列数字:

values = [0, 1, 2, 3, 4, 5, ... , 351, 0, 1, 2, 3, 4, 5, 6, ... , 750, 0, 1, 2, 3, 4, 5, ... , 559]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列表,其中包含从 0 到一个数字的元素列表。

喜欢 :

new_values = [[0, 1, 2, ... , 351], [0, 1, 2, ... , 750], [0, 1, 2, ... , 559]]
Run Code Online (Sandbox Code Playgroud)

我所做的代码是这样的:

start = 0
new_values = []
for i,val in enumerate(values): 
    if(val == 0):
        new_values.append(values[start:i]) 
        start = i
Run Code Online (Sandbox Code Playgroud)

但是,它返回的是:

new_values = [[], …
Run Code Online (Sandbox Code Playgroud)

python list

3
推荐指数
1
解决办法
488
查看次数

标签 统计

python ×2

boolean ×1

list ×1

performance ×1

python-2.7 ×1

python-3.x ×1