Форум сайта python.su
14
py.user.next
для len() нужен список
>>> len(xrange(6)) 6 >>> len(x for x in xrange(6)) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'generator' has no len()
Офлайн
20
>>> type(xrange(5)) <type 'xrange'> >>> type(x for x in xrange(5)) <type 'generator'>
odnochlen
А посчитать количество элементов, не сохраняя все в список, можно?
sum(1 for x in xrange(5))
generator
A function which returns an iterator.
…
Each yield temporarily suspends processing, remembering the location execution state (including local variables and pending try-statements). When the generator resumes, it picks-up where it left-off (in contrast to functions which start fresh on every invocation).
Офлайн
857
>>> matr = [[1, -1, 2, -2, 3], [1, -1, 2, -2, -3]] >>> sum(i < 0 for i in sum(matr, [])) 5 >>>
odnochlenxrange() возвращает “xrange object”>>> len(xrange(6)) 6 >>>
>>> range(1, 10)[2:5] range(3, 6) >>>
Отредактировано py.user.next (Авг. 17, 2012 06:05:16)
Офлайн