通常在 Python 中,当我使用列表时,我最终想要的是从列表中过滤出特定的项目。
对我来说,这似乎过于冗长了。我必须在两个独立的语句中定义和使用num(
我尝试了
在Python中是否有更简洁的方法来做到这一点?
编辑:
我的问题是在Python中是否有更好的方法来完成我想要做的事情。在Python中有很多时候,我不知道某个构造方式,但它可以使我的代码更好、更易读。
我不是在问
numbers = [5, 1, 4, 2, 7, 4]
big_nums = [num for num in numbers if num > 2]
对我来说,这似乎过于冗长了。我必须在两个独立的语句中定义和使用num(
num for num ...
),即使我没有对num
进行任何操作。我尝试了
[num in numbers if num > 2]
,但是Python会抛出一个SyntaxError
。在Python中是否有更简洁的方法来做到这一点?
编辑:
我的问题是在Python中是否有更好的方法来完成我想要做的事情。在Python中有很多时候,我不知道某个构造方式,但它可以使我的代码更好、更易读。
我不是在问
filter
和列表推导之间的性能权衡。我没有使用列表推导之前,用标准的for
循环构建列表也没有问题。
x if y else z
),其中包含一个in
表达式,而你只是忘记了 else 子句。 - Edward Minnixnumbers
是一个一维的Numpy数组,你可以通过numbers[numbers>2]
来获取大于2的元素。FWIW,这句话的意思是提供一个参考,仅供参考,不必全盘接受。 - PM 2Ring