Коли я зустрічаюся з ситуацією, я можу це робити в JavaScript, я завжди думаю, що якщо є foreach
функція, це було б зручністю. Під формою я маю на увазі функцію, описану нижче:
def foreach(fn,iterable):
for x in iterable:
fn(x)
вони просто роблять це на кожному елементі і нічого не поступаються і не повертають, я думаю, що це має бути вбудована функція і має бути швидше, ніж писати її з чистим Python, але я не знайшов його у списку, або це просто називається іншим ім'ям? або я просто пропускаю тут деякі моменти?
Можливо, я помилився, тому що виклик функції в Python коштував дорожче, безумовно, не найкраща практика для прикладу. Замість того, щоб виходити з циклу, функція повинна робити цикл у тій стороні його тіла, як виглядає нижче, що вже згадувалося в багатьох пропозиціях щодо коду python:
def fn(*args):
for x in args:
dosomething
але я подумав, що передбачення все ще вітається на двох фактах:
- У звичайних випадках людей просто не хвилює продуктивність
- Іноді API не сприйняв об'єкт, який можна відтворити, і ви не можете переписати його джерело.
for
, для чого.
list.each(func)
чистіше, ніж for item in list: func(item)
ІМО. Проблема полягає в тому, що Python добре зробив роботу із заміни функціональних обраних, таких як map()
та filter()
з переліком списків, які просто розширюють його вбудований for
і if
(який є однорідним і читабельним), і певне .each()
може суперечити цьому.
sum(0 for _ in map(f, seq))
є читаним вирішенням проблеми.
for
цикл?