📅  最后修改于: 2023-12-03 14:46:31.736000             🧑  作者: Mango
在 Python 中, itertools
模块中的 takewhile()
函数可以从序列中返回直到满足给定条件为 False
的所有元素。
itertools.takewhile(predicate, iterable)
predicate
:一个返回 bool
类型的函数或 lambda 函数。iterable
:一个可迭代对象。iterable
中满足条件 predicate
的每个元素。import itertools
def predicate(x):
return x < 5
result = itertools.takewhile(predicate, [1, 3, 5, 7, 2, 4, 6, 8])
print(list(result)) # [1, 3]
在上面的例子中,predicate()
函数返回 True
直到 x
的值大于等于 5
。 因此,takewhile()
将返回 [1, 3]
。
takewhile()
可以在处理可迭代对象时有很多应用场景,尤其是对于返回无限数量的值的函数非常有用。
例如,我们可以使用 takewhile()
函数从 itertools.count()
生成器中选择所有小于 100
的数字:
import itertools
result = itertools.takewhile(lambda x: x < 100, itertools.count())
print(list(result)) # [0, 1, 2, ..., 99]
在 Python 中,通过使用 takewhile()
函数,我们可以轻松获取直到满足特定条件为 False
的所有元素。 它是处理大型数据集和流式数据的最佳选择之一。