Выражение:
print max(3 for i in range(4))
Печатает результат функции max()
, примененной к тому, что находится в скобках.Однако в скобках есть выражение generator , создающее нечто похожее на массив со всеми элементами, равными 3
, но более эффективным способом, чем выражение:
print max([3 for i in range(4)])
, которое создастмассив 3
и уничтожить его после того, как он больше не нужен.
По сути, потому что в скобках вы создадите только те значения, которые равны, а функция max()
возвращает самое большое, вы делаетеНе нужно создавать более одного элемента.Поскольку с числом элементов, всегда равным одному, функция max()
становится ненужной, и ваш код может быть эффективно заменен (по крайней мере, в том случае, если вы дали) следующим кодом:
print 3
Тоэто просто все;)
Чтобы узнать больше о различиях между понимание и генератор выражение, вы можете посетить страницу документации .