реализация chop () с использованием итераторов - PullRequest
1 голос
/ 29 июня 2010

Текущая версия:

def chop(ar,size):
    p=len(ar)/size
    for i in xrange(p):
        yield ar[(i*size):((i+1)*size)]

ar - тип списка ().

Я хочу, чтобы chop () брал итератор и возвращал итератор.

for i in chop(xrange(9),3):
    for j in i:
       print j,
    print

печать

0 1 2
3 4 5
6 7 8

1 Ответ

2 голосов
/ 29 июня 2010

В документации itertools есть реализация :

def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...