2D-список попался ... но здесь все в порядке, потому что повторные ссылки игнорируются ... Я думаю, это просто прекрасно.

я есть что-то, что очень похоже на понимание списка в Python, за исключением того, что оно разделяет изменяемое состояние между итерациями. Есть ли способ сделать это с пониманием списка?

def f(x):
    """ 5-bit LFSR """
    return (x >> 1) ^ (0x12*(x&1))

def batch(f, x, n):
    result = [x]
    for _ in xrange(1,n):
        x = f(x)
        result.append(x)
    return result

batch(f, 1, 5)

который возвращается[1, 18, 9, 22, 11], Здесь важно то, чтоbatch функция, а неf(x) который здесь просто простой пример, чтобы проиллюстрировать проблему.

В качестве альтернативы я мог бы реализовать с помощью генератора:

def batch(f, x, n):
    yield x
    for _ in xrange(1,n):
        x = f(x)
        yield x

list(batch(f, 1, 5))

Но пахнет немного неловко. Я ищу что-то вроде этого ...

batch = [??? for _ in xrange(n)]

Ответы на вопрос(3)

Ваш ответ на вопрос