Python: длинная форма массива для цикла

В Python краткая форма построения массива с помощью цикла bracketized for:

def get_row(runner):
    row = some_complicated_function()
    return row

my_array = [get_row(runner) for runner in range(10000)]

Как это будет выглядеть, если я хочу избежать сжатой формы цикла for?

«Как бы это выглядело, если бы я не хотел использовать сжатую форму цикла for?» - my_array = []; for runner in range(10000): my_array.append(get_row(runner)).
Christian Dean 09.06.2018 04:20

здорово. Благодарю. И сравнимо ли это по производительности / скорости?

user8042669 09.06.2018 04:21

Понимание списков @ user8042669 обычно выполняется быстрее, поскольку они убрать накладные расходы доступа к list.append.

Olivier Melançon 09.06.2018 04:23

Я не совсем уверен в @ user8042669. Я подозреваю, что составление списка будет быстрее. Почему бы не попробовать самому :-)

Christian Dean 09.06.2018 04:24
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующий фрагмент кода (тот, который вы предоставили, является пониманием списка)

my_array = [get_row(runner) for runner in range(10000)]

Вот эквивалентная версия unrolled

my_array = []
for runner in range(10000):
    row_runner = get_row(runner)
    my_array.append(row_runner)
    # alternatively
    # my_array.append(get_row(runner))

Другие вопросы по теме