Skip to main content
 首页 » 编程设计

python之如果元素不遵循 'if' 'or' 语句,则从列表中删除它们

2025年05月04日15Terrylee

我正在尝试删除列表中不需要的变量。我需要有两个条件:一个是确保我的数组中的值小于变量 A,另一个是确保它们不等于另一个变量 B。

此代码无效:

original_Ar = [0,1,2,3,4,5,6,7,8,9,10,11,12] 
new_Ar = [s for s in original_Ar if (s != 2) or (s < 10)] 
 
print (new_Ar) 

如果我将它分成两个语句(而不是 或 语句)——它们确实有效:

original_Ar = [0,1,2,3,4,5,6,7,8,9,10,11,12] 
print ([s for s in original_Ar if (s != 2)]) 
print ([s for s in original_Ar if (s < 10)]) 

知道如何在一行中做到这一点吗?

请您参考如下方法:

您的 bool 逻辑混淆了。您想要包括所有不等于 2 和 小于 10 的值:

new_Ar = [s for s in original_Ar if s != 2 and s < 10] 
#           *both* conditions must be true ^^^ 

否则,您将包括 s = 2,因为它小于 10,并且您将包括 s = 11 和 s = 12,因为两者都不等于二!