Перебирать список в случайных последовательных кратных n Python - PullRequest
1 голос
/ 07 апреля 2019

У меня есть следующий пример кода:

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def batch_gen(data, batch_size):
    for i in range(0, len(data), batch_size):
        yield data[i:i+batch_size]
batch_size = randint(1,4)
n = 0
print("batch_size is {}".format(batch_size))
for i in batch_gen(l, batch_size):
    for x in i:
        print(x)
    print("loop {}".format(n))
    n += 1
    batch_size = randint(1,4)

Что дает мне вывод:

batch_size is 3
1
2
3
loop 0
4
5
6
loop 1
7
8
9
loop 2
10
loop 3

Это вывод, который я ищу, однако batch_size всегда устанавливается из batch_size = randint (1,4) вне цикла for.

Я смотрю на случайный размер batch_size для каждой итерации цикла, и каждый следующий цикл выбирается там, где остановился последний цикл, до завершения списка случайной длины.

Любая помощь будет принята с благодарностью!

Пример кода, взятого из Итерация по последовательности Python, кратная n?

...