filter 可以用于过滤列表,返回一个新的 iterator 对象。
以下是一个数组,找出其中的奇数:
nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
def check_odd(x):
if x % 2:
return True
else:
return False
odds_func = filter(check_odd, nums)
print(list(odds_func))
# [5, 23, 53, 93, -13]
filter 的第一个参数可以改成 lambda 函数:
nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
odds = filter(lambda x: x % 2, nums)
print(list(odds))
# [5, 23, 53, 93, -13]
evens = filter(lambda x: not (x % 2), nums)
print(list(evens))
# [10, 64, 42, 2, 0, -14, 6, -22]
除了 filter 函数之外, 也可以使用 list comprehension 找出列表中的奇偶数:
nums = [5, 10, 23, 64, 42, 53, 93, 2, 0, -14, 6, -22, -13]
print("odds: ", [x for x in nums if x % 2])
# odds: [5, 23, 53, 93, -13]
print("evens: ", [x for x in nums if not (x % 2)])
# evens: [10, 64, 42, 2, 0, -14, 6, -22]
本文介绍了如何使用Python的filter函数配合lambda表达式和列表推导式筛选奇数和偶数,展示了在处理列表时的不同高效方法。
2212

被折叠的 条评论
为什么被折叠?



