如何创建列表的列表



我有:

mylist = [1, 2, 7, 11, 8, 55, 89, 1, 3, 8]

我怎样才能把这个分成5到列表的列表

期望的结果是:[[1, 2, 7, 11, 8], [2, 7, 11, 8, 55], [7, 11, 8, 55, 89],[11, 8, 55, 89, 1], [8, 55, 89, 1, 3], [55, 89, 1, 3, 8]]

这是我尝试过的:

indices = [0,1,2]
for i in indices:
new.append(mylist [i])
indices = [x+1 for x in indices]
print(indices)

提前谢谢你。

使用列表推导式很容易:

>>> mylist = [1, 2, 7, 11, 8, 55, 89, 1, 3, 8]
>>> [mylist[i:i+5] for i in range(6)]
[[1, 2, 7, 11, 8], [2, 7, 11, 8, 55], [7, 11, 8, 55, 89], [11, 8, 55, 89, 1], [8, 55, 89, 1, 3], [55, 89, 1, 3, 8]]

有以下两个选项。

  1. 列表生成
mylist = [1, 2, 7, 11, 8, 55, 89, 1, 3, 8]
res = [mylist[i:i+5] for i in range(0, len(mylist)-4)]
  1. 是一个循环,因为它是顺序构造的,一旦长度不满足,可以简单地退出循环(参见前面的方法来限制循环的长度)
mylist = [1, 2, 7, 11, 8, 55, 89, 1, 3, 8]
new = []
for i in range(0, len(mylist)):
if len(mylist[i:i+5]) == 5:
new.append(mylist[i:i+5])
else:
break

最新更新