在 Python 中过滤元组(Tuple)列表
在 Python 中过滤元组列表:
- 使用列表推导来迭代列表。
- 从列表推导中返回一个条件。
- 新列表将仅包含满足条件的元组。
# ✅ 使用列表推导过滤元组列表
list_of_tuples = [('Alice', 1), ('Bob', 2), ('Carl', 3), ('Dean', 4)]
filtered_list = [tup for tup in list_of_tuples if tup[1] > 2]
# ?️ [('Carl', 3), ('Dean', 4)]
print(filtered_list)
# -------------------------------------------------------------
# ✅ 使用 `filter()` 函数过滤元组列表
filtered_list_2 = list(
filter(
lambda tup: tup[1] > 2,
list_of_tuples
)
)
# ?️ [('Carl', 3), ('Dean', 4)]
print(filtered_list_2)
上述代码运行结果如下
我们使用列表推导来过滤元组列表。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们检查当前元组的第二项(索引 1)是否大于 2 并返回结果。
新列表仅包含条件返回真值的元组。
或者,我们可以使用 filter()
函数。
在 Python 中过滤元组列表:
- 使用 filter() 函数过滤列表。
- filter 函数返回一个包含结果的迭代器。
- 将过滤器对象传递给 list() 类以将其转换为列表。
list_of_tuples = [('Alice', 1), ('Bob', 2), ('Carl', 3), ('Dean', 4)]
filtered_list_2 = list(
filter(
lambda tup: tup[1] > 2,
list_of_tuples
)
)
# ?️ [('Carl', 3), ('Dean', 4)]
print(filtered_list_2)
filter
函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。
filter
函数返回一个过滤器对象,因此我们必须将过滤器对象传递给list()
类以将其转换为列表。
lambda
函数被列表中的每个元组调用,检查元组中的第二项是否大于 2 并返回结果。
最终列表仅包含满足条件的元组。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。