• Проблема с List comprehension

    iley
    @iley
    Можно решить, например, так:
    from itertools import cycle
    test = [secretkey[i:i + 3]+l for i, l in zip(range(0, len(secretkey), 3), cycle(id))]

    Но, на мой взгляд, код будет более читаемым если добавить вспомогательную функцию, разбивающую строку (или любую другую последовательность) на равные части:
    from itertools import cycle
    
    def chunks(l, n):
        """ Yield successive n-sized chunks from l."""
        for i in xrange(0, len(l), n):
            yield l[i:i+n]
    
    test = [ chunk + number
             for chunk, number in zip(chunks(secretkey, 3), cycle(id)) ]
    Ответ написан
    1 комментарий