Wie wäre es iter
, das erste Element zu verwenden und zu konsumieren?
Bearbeiten: Zurück zur Frage des OP: Es gibt eine gemeinsame Operation, die Sie für alle Elemente ausführen möchten, und dann eine Operation, die Sie für das erste Element ausführen möchten, und eine andere für den Rest.
Wenn es sich nur um einen einzelnen Funktionsaufruf handelt, würde ich sagen, schreiben Sie ihn einfach zweimal. Es wird die Welt nicht beenden. Wenn es mehr involviert ist, können Sie einen Dekorateur verwenden, um Ihre "erste" Funktion und "Ruhe" -Funktion mit einer gemeinsamen Operation zu verpacken.
def common(item):
print "common (x**2):", item**2
def wrap_common(func):
"""Wraps `func` with a common operation"""
def wrapped(item):
func(item)
common(item)
return wrapped
@wrap_common
def first(item):
"""Performed on first item"""
print "first:", item+2
@wrap_common
def rest(item):
"""Performed on rest of items"""
print "rest:", item+5
items = iter(range(5))
first(items.next())
for item in items:
rest(item)
Ausgabe:
first: 2
common (x**2): 0
rest: 6
common (x**2): 1
rest: 7
common (x**2): 4
rest: 8
common (x**2): 9
rest: 9
common (x**2): 16
oder du könntest ein Stück machen:
first(items[0])
for item in items[1:]:
rest(item)
member
diese Weise verschmutzen Sie den Namespace mit einem Extra .