создать список из повторного шаблона в Python - PullRequest
0 голосов
/ 25 сентября 2018

Я хотел бы создать список в Python3, который выглядит следующим образом:

L = [(0,(0,1,2,3,4)), (1, (5,6,7,8,9)),(2,(10,11,12,13,14))......)

Давайте назовем его L= [(i,(j1,j2,j3,j4,j5),...)

Важно то, что шаблон продолжает повторяться доJ5 достигает 740231

Любые предложения будут очень признательны.

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

Другой способ, строго осмысливая:

L = [(i,tuple(range(i*5,i*5+5))) for i in range(740231//5+1)]
0 голосов
/ 25 сентября 2018

Использовать функцию генератора:

def gen():
   x = 0
   y = 0  
   while y < 740231:
       yield( (x, tuple(range(y,y+5)), ) )
       x += 1
       y += 5

>>> list(gen())
[(0, (0, 1, 2, 3, 4)), (1, (5, 6, 7, 8, 9)), (2, (10, 11, 12, 13, 14)) ... ]
0 голосов
/ 25 сентября 2018

Вот одно решение с использованием enumerate и range:

n = 5
k = 14

ranger = (range(i, i+n) for i in range(0, k, n))
L = list(enumerate(map(tuple, ranger)))

# [(0, (0, 1, 2, 3, 4)), (1, (5, 6, 7, 8, 9)), (2, (10, 11, 12, 13, 14))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...