for
ループの最初の要素をスキップする、堅牢で汎用的な方法が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 ]
私はitertools.islice
は、トリックを行うだろうと思い
うわー、私はそのバージョンを知らなかった。しかし、 'doStuff(str(x)for x for next(anIterable、None))'と書くことはできますか?私はそうは思わない。 – user2622016
@ user2622016:私は基本的にあなたの質問の最初の半分だけを見て、 'it.next()'を使って 'StopIteration'をキャッチしました。 'next(それ、None)'は読むのがずっと簡単かもしれません。 –
ああ、申し訳ありませんが、 'next( 'asdf'、None)'はうまくいかず、暗黙的にシーケンスをイテレータに変更しません。 – user2622016