python - 获取列表中的每个奇数变量?

标签 python

如果我在 Python 中创建一个列表并想编写一个只返回 1 到 x 范围内的奇数的函数,我该怎么做?

例如,如果我有列表 [1, 2, 3, 4] 从 1 到 4(4 ix my x),我想返回 [1, 3]。

最佳答案

如果您想从任意列表开始:

[item for item in yourlist if item % 2]

但是如果你总是从 range 开始,range(1, x, 2) 更好!-)

例如:

$ python -mtimeit -s'x=99' 'filter(lambda(t): t % 2 == 1, range(1, x))'
10000 loops, best of 3: 38.5 usec per loop
$ python -mtimeit -s'x=99' 'range(1, x, 2)'
1000000 loops, best of 3: 1.38 usec per loop

所以在这种情况下,正确的方法比典型的错误方法快 28 倍 (!)。

“如果这就是您所需要的,则比您需要的更通用”解决方案:

$ python -mtimeit -s'yourlist=range(1,99)' '[item for item in yourlist if item % 2]'
10000 loops, best of 3: 21.6 usec per loop

只比样本错误的快两倍,但仍然比“恰到好处”的慢 15 倍!-)

关于python - 获取列表中的每个奇数变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780763/

相关文章:

python - 如何在 Flask sqlalchemy 中查询某段日期时间?

python - 按多列唯一排序,然后合并不匹配列中的值

迭代时的Python列表插入

python - 使用 PIL 将以不同像素保存的复制图像复制到原始图像

python - 我们应该为 python 变量名使用哪些缩写?

python - 属性错误 : 'Series' object has no attribute 'split' error in sending emails

Python Statsmodels Mixedlm(混合线性模型)随机效应

Python CGIHTTPServer 默认目录

python - Spider_closed 函数不会被触发

python - 将值列表分配给 numpy 数组