Форум сайта python.su
Почему подобный код работает в момент объявления:
#!/usr/bin/env python
(open('file.txt','a').write(x) for x in xrange(100))
# Или например:
(x for x in xrange(1000000))
#!/usr/bin/env python
open('file.txt','a').write(x) for x in xrange(100)
x for x in xrange(1000000)
Офлайн
Не очень вас понял, если используете квадратные скобки то получаете список, если круглые, то генератор.
Если не используете скобки, получаете ошибку.
Какие именно вычисления производятся на месте?
Офлайн
Zubchickтолько что проверил (KUbuntu 9.10, Python-2.6.4) действительно не работает.
Какие именно вычисления производятся на месте?
(open('file.txt','a').write(str(x)+'\n') for x in xrange(100))
[open('file.txt','a').write(str(x)+'\n') for x in xrange(100)]
Офлайн
у меня одинаково. Версии питонов совпадают.
Отредактировано (Янв. 22, 2010 19:18:14)
Офлайн
Кажется, глюки. Может, недосыпание?
Офлайн
ZubchickЗапущенное из файла, именно так в одну строчку.
у меня одинаково. Версии питонов совпадают.
Андрей СветловВозможно что и так. Но блин пол-часа экспериментировал - генераторное выражение направленное в xrange(100000000) стабильно вызывало мэмори эррор…
Кажется, глюки
Офлайн