Бесконечный генератор списка

Задача:

Нужно организовать цикл, который будет бесконечно перебирать содержание списка.

Решений можно придумать несколько.

Я вот сделал так:

    def endless_generator(l):
        """
        l - <type 'list'> 
        """
        if not isinstance(l, list):
            raise TypeError('argument not <type: list>')
        if not len(l):
            return
        g = l.__iter__()
        while True:
            try:
                yield g.next()
            except StopIteration:
                g = l.__iter__()

А теперь смотрим что получилось.

    test_list = [1,2,3,4]
    for i in endless_generator(test_list):
        print i

И результат

    1
    2
    3
    4
    1
    2
    3
    4
    1
    2
    3
    4
    1
    ...

И так до бесконечности.


Опубликовано в категории IT с тегами

Отзывов: 2


anger ответил в Tuesday 26 July 2011

я не помню для чего мне нужно было, но нужно было :)


Roman ответил в Friday 13 May 2011

Интересное решение А вот для каких практических целей оно может пригодиться


Оставить комментрий