我通过
制作了一个数组索引列表indexlist = [(x, y) for x, y in np.ndindex(a.shape)]
a是4x7阵列。我试图找出一种方法来获取特定列中每个索引的列表,除了该列中的一个特定索引(在此示例中,感兴趣的索引是(1,2)。我使用了这个:
for i in indexlist:
if i[1] != pivot[1]:
indexlist.remove(i)
print(i)
(pivot =(1,2))。我希望这给我一个只有(0,2)(1,2)(2,2)(3,2)的列表,但我得到一个更大的列表。当我再次运行它时,它会删除一些值。它达到了我的预期,但只有在我运行3次之后。为什么呢?
for i in indexlist:
if i[1] != pivot[1]:
indexlist.remove(i)
print(i)
(0, 0)
(0, 3)
(0, 5)
(1, 0)
(1, 3)
(1, 5)
(2, 0)
(2, 3)
(2, 5)
(3, 0)
(3, 3)
(3, 5)
for i in indexlist:
if i[1] != pivot[1]:
indexlist.remove(i)
print(i)
(0, 1)
(0, 4)
(1, 1)
(1, 4)
(2, 1)
(2, 4)
(3, 1)
(3, 4)
for i in indexlist:
if i[1] != pivot[1]:
indexlist.remove(i)
print(i)
(0, 6)
(1, 6)
(2, 6)
(3, 6)
for i in indexlist:
if i[1] != pivot[1]:
indexlist.remove(i)
print(i)
print(indexlist)
[(0, 2), (1, 2), (2, 2), (3, 2)]
澄清,我想从列表中删除项目,但我不明白为什么它不能同时删除i!= 2的项目(x,i)。