📅  最后修改于: 2023-12-03 14:46:12.092000             🧑  作者: Mango
当我们处理列表时,常常会遇到需要删除空值的需求。在Python中,我们可以通过以下几种方式来删除列表中的空值。
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
lst = [x for x in lst if x]
print(lst)
输出:
[1, 2, 3, ' ', 4]
在这个方法中,我们使用一个列表推导式来过滤掉列表中的空值。在过滤条件中,我们使用了Python的真值表达式,即只有当x为True时,if x才会成立,否则将被过滤掉。
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
lst = list(filter(lambda x: x, lst))
print(lst)
输出:
[1, 2, 3, ' ', 4]
在这个方法中,我们使用了Python内置的filter函数来过滤掉列表中的空值。在过滤函数中,我们使用了Python的真值表达式,即只有当x为True时,filter才会返回x,否则将被过滤掉。
lst = [1, None, 2, '', 3, ' ', 4, [], {}]
i = 0
while i < len(lst):
if not lst[i]:
del lst[i]
else:
i += 1
print(lst)
输出:
[1, 2, 3, ' ', 4]
在这个方法中,我们使用了一个while循环来遍历列表,并使用Python的索引删除法来删除空值。当我们删除了一个元素后,需要将当前的索引i往前移动一位,否则会出现跳过元素的情况。