Python 过滤 True 条件表达式
Python 语言提供了一种过滤列表的方法,即过滤所有满足某个条件的列表成员。这个方法使用的是一个 True 条件表达式,在 Python 中也称为“条件判断语句”。
使用方法
下面是使用 True 条件表达式进行列表过滤的基本语法:
new_list = [x for x in list if condition]
其中,new_list
表示过滤后得到的新列表,list
是需要被过滤的原始列表,condition
是判断条件,只有满足该条件的元素才被留下。
示例说明
示例 1
我们来看一个简单的示例:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers)
运行结果为:
[2, 4, 6]
上面的代码中,首先定义了一个包含 6 个整数的列表 numbers
,然后使用列表解析式生成了一个新列表 even_numbers
,这个新列表只包含 numbers
中满足条件 x % 2 == 0
的元素,即偶数。最后将 even_numbers
打印输出。
示例 2
我们再来看一个稍微复杂一点的示例:
words = ['apple', 'banana', 'cherry', 'date', 'eggplant']
long_words = [word for word in words if len(word) > 5]
print(long_words)
运行结果为:
['banana', 'cherry', 'eggplant']
上面的代码中,首先定义了一个包含 5 个字符串的列表 words
,然后使用列表解析式生成了一个新列表 long_words
,这个新列表只包含 words
中满足条件 len(word) > 5
的单词,即长度大于 5 的单词。最后将 long_words
打印输出。
注意事项
在列表解析式中,可以使用任何复杂的条件表达式,包括多重条件连接、内嵌循环等,但需要注意的是,条件表达式的复杂性可能会影响代码的可读性与性能,因此需要进行适当的折中取舍。