В Python краткая форма построения массива с помощью цикла bracketized for:
def get_row(runner):
row = some_complicated_function()
return row
my_array = [get_row(runner) for runner in range(10000)]
Как это будет выглядеть, если я хочу избежать сжатой формы цикла for?
здорово. Благодарю. И сравнимо ли это по производительности / скорости?
Понимание списков @ user8042669 обычно выполняется быстрее, поскольку они убрать накладные расходы доступа к list.append.
Я не совсем уверен в @ user8042669. Я подозреваю, что составление списка будет быстрее. Почему бы не попробовать самому :-)






Следующий фрагмент кода (тот, который вы предоставили, является пониманием списка)
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))
my_array = []; for runner in range(10000): my_array.append(get_row(runner)).