gpt4 book ai didi

从迭代器中删除 N 个值的 Pythonic 解决方案

转载 作者:太空狗 更新时间:2023-10-29 22:13:53 25 4
gpt4 key购买 nike

是否有从迭代器中删除 n 值的 pythonic 解决方案?您只需丢弃 n 值即可,如下所示:

def _drop(it, n):
for _ in xrange(n):
it.next()

但在我看来,这并不像 Python 代码应有的那样优雅。我在这里缺少更好的方法吗?

最佳答案

我相信您正在寻找“消费”食谱

http://docs.python.org/library/itertools.html#recipes

def consume(iterator, n):
"Advance the iterator n-steps ahead. If n is none, consume entirely."
# Use functions that consume iterators at C speed.
if n is None:
# feed the entire iterator into a zero-length deque
collections.deque(iterator, maxlen=0)
else:
# advance to the empty slice starting at position n
next(islice(iterator, n, n), None)

如果您不需要 nNone 时的特殊行为,你可以使用

next(islice(iterator, n, n), None)

关于从迭代器中删除 N 个值的 Pythonic 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com