0

我有一个包含一些 0 的数组,我想将它们从数组中删除。我还想将那些 0 的位置保存在另一个名为deleted_array_index

array = [1, 2, 0, 0, 3, 0, 3, 5, 6, 0]

至:

array = [1, 2, 3, 3, 5, 6]

并且还将删除索引(0 所在的位置)保存在另一个数组中,在这种情况下:

deleted_index_array = [2, 3, 5, 9]

为了删除 0 我试过了:print [ x for x in array if '0']但它不起作用。

非常感谢任何帮助,谢谢。

4

2 回答 2

2
array = [1, 2, 0, 0, 3, 0, 3, 5, 6, 0]

现在.... "enumerate(array)" 将返回数组中每个项目的值和索引。

deleted_index_array = [i for i, x in enumerate(array) if x == 0]

现在过滤数组

array = [i for i in array if i != 0]
于 2013-10-16T09:04:56.803 回答
2

尽管您的列表理解有点错误,但您走在正确的轨道上。尝试:

print [ x if x != '0' for x in array]

更好的方法是:

deleted_index_array = [x if array[x] == '0' for x in len(array)]
for i in deleted_index_array:
  array.remove(array[i])
于 2013-10-16T09:13:19.493 回答