Python 中的 filter() 函数:过滤列表、元组和字典356


Python 中的 filter() 函数用于过滤序列中的元素,仅保留满足指定条件的元素。它返回一个生成器对象,该对象可以遍历过滤后的序列。

语法```python
filter(function, iterable)
```
* function:一个接受一个参数并返回 True 或 False 的函数。如果该函数对某个元素返回 True,该元素将包含在输出序列中。
* iterable:要过滤的序列,例如列表、元组或字典。

过滤列表

以下示例显示如何使用 filter() 函数从列表中过滤偶数:```python
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出:[2, 4, 6, 8, 10]
```

过滤元组

元组是不可变的序列,因此无法修改。不过,可以使用 filter() 函数创建元组的过滤副本,其中仅包含满足特定条件的元素:```python
fruits = ("apple", "banana", "cherry", "durian", "elderberry")
filtered_fruits = filter(lambda fruit: ("e"), fruits)
print(tuple(filtered_fruits)) # 输出:('elderberry',)
```

过滤字典

filter() 函数也可以用于过滤字典中的键值对。以下示例显示如何从字典中过滤具有特定值的键:```python
user_info = {
"name": "John Doe",
"age": 30,
"email": "@",
"city": "New York"
}
filtered_user_info = filter(lambda item: item[1] == "New York", ())
print(dict(filtered_user_info)) # 输出:{'city': 'New York'}
```

自定义函数

filter() 函数使用一个函数作为第一个参数,该函数确定每个元素是否包含在输出序列中。你可以使用任何满足以下条件的函数:* 接受一个参数
* 返回 True 或 False

以下示例定义了一个自定义函数,用于过滤列表中的字符串:```python
def is_long_string(string):
return len(string) > 5
words = ["hello", "world", "this", "is", "a", "long", "string"]
long_words = filter(is_long_string, words)
print(list(long_words)) # 输出:['hello', 'world', 'string']
```

Python 中的 filter() 函数是一个强大的工具,用于从序列中过滤元素。它允许你根据特定条件选择性地提取数据,使其成为数据处理和分析中的宝贵工具。

2024-10-17


上一篇:Python 中的代码缩进

下一篇:Python 数据包:深入了解 Python 生态系统