我有一个100个值的列表,我想拆分成一个列表,其中包含数组,每个数组包含10个值。你知道吗
array = [1,2,3,4,5,6,7,7,8,9,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8............]
newarray = [[0,1,2,3,4,5,6,7,7,8,9],[1,2,3,4,5,6,7,8,9,1],[2,3,4,5,6,7,8............]]
我想这样做,以便调用newArray[4]并得到10个值。你知道吗
这就是我尝试过的:
for i in range(len(values)):
a = []
for j in range(10):
a.append(values[j])
val.append(a)
print(val)
问题是我现在得到了每个不同数组中的前十个值。你知道吗
我做错什么了?你知道吗
之所以只得到前十个值,是因为只对前十个值进行迭代,只进行
len(values)
迭代。因此,不是以10个子列表结束,每个子列表都有10个值,而是得到一个包含100个子列表的列表,每个子列表都有原始列表的前10个值。要解决这个问题,需要将外部循环变量更改为range(0, len(values) - 10, 10)
,内部变量更改为range(i, i + 10)
。当然,最后会留下一小块你必须处理的东西,但在你的情况下len(values) % 10 == 0
你应该没事。综上所述,我们有:通过列表理解:
当然,还有其他(可以说是更具python风格的)方法来解决这个问题,但下面是您的代码的问题:
在本部分中:
索引
j
对于i
的每个值都是相同的。要追加的值应基于i
进行偏移。你知道吗这里有一种方法:
这样,当
i = 0
时,您将附加从values[0]
到values[9]
的项。同样,当i=1
时,您将附加从values[10]
到values[19]
的项,依此类推。你知道吗尝试使用列表理解:
相关问题 更多 >
编程相关推荐