use*_*016 8 python iterator for-loop
在python中有一个强大的通用方法来跳过for循环中的第一个元素吗?
我能想到的唯一方法是手工编写一个特殊的发电机:
def skipFirst( it ):
    it = iter(it) #identity for iterators
    it.next()
    for x in it:
        yield x
并使用它例如:
for x in skipFirst(anIterable):
    print repr(x)
并喜欢:
doStuff( str(x) for x in skipFirst(anIterable) )
并喜欢:
[ x for x in skipFirst(anIterable) if x is not None ]
我知道我们可以在列表上做切片,(x for x in aList[1:])但这会产生一个副本,并不适用于所有序列,迭代器,集合等.
Nee*_*rma 16
for i in list1[1:]: #Skip first element
    # Do What Ever you want
说明:
当你在for循环列表中使用[1:]时,它跳过第一个元素并从第二个元素开始循环到最后一个元素
Mar*_*ers 10
当只跳过一个项目时,我会使用以下next()功能:
it = iter(iterable_or_sequence)
next(it, None)  # skip first item.
for elem in it:
    # all but the first element
通过给它第二个参数,一个默认值,它也会吞下StopIteration异常.它不需要进口,可以简化杂乱for循环设置,并且可以使用在一个for循环中有条件地跳过项目.
如果您希望迭代it跳过第一个项目的所有元素,那么itertools.islice()是合适的:
from itertools import islice
for elem in islice(it, 1, None):
    # all but the first element