【发布时间】:2014-01-04 01:57:36
【问题描述】:
检查可迭代对象的长度是否至少为 n 的 Pythonic 方法是什么?
这是我的方法:
import itertools
def is_iterable_longer_than(iterable, n):
return n <= len(itertools.islice(iterable, n))
还有什么更好的吗?
编辑:
我愿意使用可迭代对象,即使它只能被评估一次。
正如所指出的,上面有一个错误。应该是:
return n <= len(list(itertools.islice(iterable, n)))
【问题讨论】:
-
如果不评估来自生成器的至少
n值,则无法这样做。 -
@JoelCornett,我知道我需要评估生成器。我想知道最好的方法。显然,我不想评估超出必要的内容,而且没有中间数据结构会很棒。我希望它非常清晰和简洁。