如何在 Python 中过滤元组
在 Python 中过滤元组:
- 使用 filter() 函数过滤元组。
- filter 函数返回一个包含结果的迭代器。
- 将过滤器对象传递给 tuple() 类以将其转换为元组。
# ✅ 过滤元组
my_tuple = (1, 3, 5, 7, 9, 12)
filtered_tuple = tuple(
filter(lambda item: item > 5, my_tuple)
)
# ?️ (7, 9, 12)
print(filtered_tuple)
# -----------------------------------------------------
# ✅ 过滤元组列表
list_of_tuples = [('Alice', 1), ('Bob', 2), ('Carl', 3), ('Delilah', 4)]
filtered_list = [tup for tup in list_of_tuples if tup[1] > 2]
# ?️ [('Carl', 3), ('Delilah', 4)]
print(filtered_list)
我们使用 filter()
函数来过滤元组。
filter 函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。
filter 函数返回一个过滤器对象,因此我们必须将过滤器对象传递给 tuple() 类以将其转换为元组。
如果为函数参数传递 None ,则可迭代的所有虚假元素都将被删除。
my_tuple = (1, 0, '', 3, 5, 0, '')
filtered_tuple = tuple(
filter(None, my_tuple)
)
# ?️ (1, 3, 5)
print(filtered_tuple)
该函数从元组中过滤掉空字符串和零。
所有不真实的值都被认为是虚假的。 Python 中的虚假值是:
- 定义为虚假的常量:None 和 False。
- 任何数字类型的 0(零)
- 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。
或者,我们可以使用列表推导。
要过滤元组:
- 使用元组推导来迭代元组。
- 从列表推导中返回一个条件。
- 使用 tuple() 类将列表转换为元组。
my_tuple = (1, 3, 5, 7, 9, 12)
filtered_tuple = tuple([item for item in my_tuple if item > 5])
# ?️ (7, 9, 12)
print(filtered_tuple)
元组推导 用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们检查元组项是否大于 5 并返回结果。
最后一步是使用 tuple()
类将列表转换为元组。
元组与列表非常相似,但实现的内置方法更少,并且是不可变的(无法更改)。
由于元组不能更改,过滤元组的唯一方法是返回一个包含必要元素的新元组。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。