从python中的重复模式创建列表

时间:2018-09-25 09:04:47

标签: python python-3.x list tuples

我想在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 :(得分:7)

另一种方法,严格理解:

L = [(i,tuple(range(i*5,i*5+5))) for i in range(740231//5+1)]

答案 1 :(得分:2)

这是使用enumeraterange的一种解决方案:

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))]

答案 2 :(得分:0)

使用生成器功能:

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)) ... ]