所以这是一个更大的数据集的一部分,但我在这里简化了它。假设您有以下代码。我想要做的是提取子数组,基于什么是中间元素(这就是dataStore的用途)。侧面说明,我知道名单的可变性,并且当我做德尔行[1],我永远会影响数据使用删除删除2D列表中的元素的问题
dataStore = []
data = [[1,3,7], [1,0,1],[2,0,2],[9,0,9], [3,1,9]]
print(data)
for index in range(0, 5):
temp = []
for row in data:
if row[1] == index:
del row[1]
temp.append(row)
del data[ data.index(row)]
dataStore.append(temp)
输出是: Data: [[2, 0, 2]] DataStore: [[[1, 1], [9, 9]], [[3, 9]], [], [[1, 7]], []]
现在的数据应该是空的我”之后完成了,并且这里的错误是(2,0,2)不会被删除,因为它与刚被删除的东西背对背。你如何解决这个问题?
我如何处理事情:我觉得这是因为当你做del data[ data.index(row)]
时,它会将所有东西都移动一次,但是行仍然在前进。所以我想到的是第二个镜像列表的解决方案,但我无法弄清楚它的语法
这是我最终选择,但我最终拼接连续两次因为原来的问题将具有可变大小的方法 – Excal