在Python中,删除数组(列表)中的空元素可以通过以下几种方法实现:
1. 使用列表推导式(List Comprehension):
my_list = [x for x in my_list if x]
2. 使用`filter()`函数:
my_list = list(filter(None, my_list))
`filter()`函数接受一个函数和一个可迭代对象作为参数,并返回一个只包含满足函数条件的元素的迭代器。在这种情况下,我们使用`None`作为函数,它将过滤出非空元素。
3. 使用循环遍历并删除空元素:
i = 0
while i < len(my_list):
if not my_list[i]:
del my_list[i]
else:
i += 1
这将遍历列表并使用`del`语句删除空元素。注意,在删除元素时,要递增索引`i`,以确保遍历整个列表。
对于多维数组(如二维或三维数组),方法类似,只需将列表推导式应用于每个子列表即可。例如,删除二维数组中的空列表:
oldlist = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 2], [2, 2, 2, 2, 4, 4], [8, 8, 8, 8, 8], [16, 16]]
newlist = [x for x in oldlist if x]
print(newlist)
输出结果将不包含空列表`[]`。