我想在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
任何建议将不胜感激。
答案 0 :(得分:7)
另一种方法,严格理解:
L = [(i,tuple(range(i*5,i*5+5))) for i in range(740231//5+1)]
答案 1 :(得分:2)
这是使用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))]
答案 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)) ... ]