Дополнительно
Диапазон питона() и ZIP() тип объекта
Я понимаю, что такие функции, как диапазон()
и ZIP () может быть использовано в цикле for. Однако я ожидал
ассортимент () для вывода списка - так же, как след
в оболочке Unix. Если я запускаю следующий код:
a=range(10)
print(a)
На выходе в диапазоне(10), предполагая, что он's не в списке, но другой тип объекта. на молнии()
имеет аналогичное поведение при печати, выводя что-то вроде
<zip object at "hexadecimal number">
Так что мой вопрос для чего они, какие преимущества дает их делать это, и как я могу получить их выводить в списки без цикла?
48
3
Вы должны быть с помощью Python 3.
В Python 2, объекты
молния
испектр
вообще ведут себя так, как вы предполагаете, возвращая списки. Они были изменены на генератор-как объекты, которые производят элементы по требованию, а не расширить весь список в памяти. Одно преимущество было большей эффективности в их типичные случаи использования (например, идя по ним).В "ленивый" по версии существуют в Python 2.X, но у них разные имена, т. е. xrange и модуле itertools.izip функций`.
Для получения всех выходных сразу в знакомый объект списка, вы можете просто назвать
список
для перебора и потреблять содержание:В Python 3.х.,
спектр
возвращает объект Range, а не список, как это сделал в Python 2.х. Аналогично,Молния
теперь возвращает объект zip вместо списка.Чтобы сделать эти объекты как списки, положить их в список:
Хотя это может показаться бесполезным на первый взгляд, это изменение в поведении
спектр
иZIP
на самом деле повышает работоспособность. Это потому, что ZIP и предметов производить предметы, поскольку они необходимы, вместо того, чтобы создавать список, чтобы держать их все сразу. Это поможет уменьшить потребление памяти и повышает скорость работы.Диапазон (
xrange
в Python 2.*) объекты неизменяемых последовательностей, в то время как молния модуле itertools (`.изделия izip функций) является объект-генератор. Составить список из генератора или последовательности, просто бросили в список. Например:Но они различаются так, как элементы создаются. Нормальные генераторы изменчивы и выхлопных их содержание, если на каждой итерации, в то время как круг является неизменным, и Дон'т: