Самый простой способ сделать это - повторить цикл дважды:
fruits = ["apple", "banana", "melon"]
for _ in range(2):
for fruit in fruits:
print fruit
, что дает:
apple
banana
melon
apple
banana
melon
Это позволяет избежать дублирования объекта списка, избежать дублирования кода и масштабироватьлегко.
Редактировать: для итерации по двум различным функциям, отдельно, вы можете просто повторить список дважды:
fruits = ["apple", "banana", "melon"]
for fruit in fruits:
print fruit
for fruit in fruits:
print len(fruit)
Для более сложных ситуаций вы также можетесоставьте список своих функций и выполните следующие действия:
def print_name(item):
print(string)
def print_name_length(item):
print(len(item))
fruits = ["apple", "banana", "melon"]
for func in (print_name, print_name_length):
for fruit in fruits:
func(fruit)