Як щодо використання iter
та споживання першого елемента?
Редагувати: Повертаючись до питання ОП, є загальна операція, яку ви хочете виконати з усіма елементами, а потім одна операція, яку ви хочете виконати з першим елементом, а інша - з рештою.
Якщо це лише один виклик функції, я б сказав, просто напишіть його двічі. Це не закінчить світ. Якщо це більше залучено, ви можете скористатися декоратором, щоб обгортати свою функцію "перша" та "відпочинок" загальною операцією.
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)
Вихід:
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
або ви можете зробити фрагмент:
first(items[0])
for item in items[1:]:
rest(item)
member
способом цим способом.