Когда я сталкиваюсь с ситуацией, я могу сделать это в javascript, я всегда думаю, что если есть foreach
функция, это было бы удобно. Под foreach я подразумеваю функцию, которая описана ниже:
def foreach(fn,iterable):
for x in iterable:
fn(x)
они просто делают это для каждого элемента и ничего не возвращают и не возвращают, я думаю, что это должна быть встроенная функция, которая должна выполняться быстрее, чем написание на чистом Python, но я не нашел ее в списке, или это просто назвали другое имя? или я просто скучаю по некоторым пунктам здесь?
Может быть, я ошибся, потому что вызов функции в Python стоит дорого, определенно не очень хорошая практика для примера. Вместо цикла out функция должна выполнять цикл в той части, в которой ее тело выглядит следующим образом, что уже упоминалось во многих предложениях кода Python:
def fn(*args):
for x in args:
dosomething
но я думал, что foreach по-прежнему можно использовать на основе двух фактов:
- В обычных случаях люди просто не заботятся о производительности
- Иногда 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
цикла?