Кажется, был бы более питонский способ сделать это, но я еще не нашел его.
Я иногда использую «map», если вызываю одну и ту же функцию (не метод) для нескольких объектов:
map(do_something, a_list_of_objects)
Это заменяет кучу кода, который выглядит следующим образом:
do_something(a)
do_something(b)
do_something(c)
...
Но это также может быть достигнуто с помощью пешеходной петли «for»:
for obj in a_list_of_objects:
do_something(obj)
Недостатком является то, что а) вы создаете список как возвращаемое значение из "карты", которую только что выбросили, и б) это может быть более запутанным, чем просто вариант простого цикла.
Вы также можете использовать понимание списка, но это также немного оскорбительно (еще раз, создавая одноразовый список):
[ do_something(x) for x in a_list_of_objects ]
Для методов, я полагаю, любой из них будет работать (с теми же оговорками):
map(lambda x: x.method_call(), a_list_of_objects)
или
[ x.method_call() for x in a_list_of_objects ]
Так что, на самом деле, я думаю, что пешеходный (но эффективный) цикл «для», вероятно, является вашей лучшей ставкой.