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

2024-05-13 00:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在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

如有任何建议,我们将不胜感激。在


Tags: 列表模式建议python3j5j1j4j2
3条回答

这里有一个使用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))]

使用发电机功能:

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

^{pr2}$

另一方面,严格理解:

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

相关问题 更多 >