for elt in itertools.chain.from_iterable(node):

if elt is the last element:
  do statement

我怎么做到的

最佳答案

循环结束时,elt变量不会超出范围,并且仍然保留循环给它的最后一个值。所以您可以将代码放在循环的末尾,并对elt变量进行操作。它不是非常漂亮,但python的范围规则也不漂亮。
唯一的问题(谢谢,cvondrick)是循环可能永远不会执行,这意味着elt不存在-我们会得到一个NameError。所以完整的方法大概是:

del elt # not necessary if we haven't use elt before, but just in case
for elt in itertools.chain.from_iterable(node):
    do_stuff_to_each(elt)
try:
    do_stuff_to_last(elt)
except NameError: # no last elt to do stuff to
    pass

关于python - Python如何检查迭代器工具链中是否已到达最后一个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2058894/

10-12 17:04