在Python中,如果你遇到`None`值,通常是因为函数没有显式返回任何值或者函数中没有返回语句。为了去除列表中的`None`值,你可以使用以下几种方法:
使用列表推导式
my_list = [1, None, 2, None, 3, None]
my_list = [x for x in my_list if x is not None]
print(my_list) 输出: [1, 2, 3]
使用`for`循环
test_list = [1, None, 4, None, None, 5, 8, None]
res = []
for val in test_list:
if val is not None:
res.append(val)
print(res) 输出: [1, 4, 5, 8]
使用`filter()`函数
test_list = [1, None, 4, None, None, 5, 8, None]
res = list(filter(None, test_list))
print(res) 输出: [1, 4, 5, 8]
使用`while`循环
list_a = [None, 1, 1, 3]
while None in list_a:
list_a.remove(None)
print(list_a) 输出: [1, 1, 3]
使用`not_empty`函数(如果你需要过滤空字符串或其他空值):
def not_empty(s):
return s and s.strip()
print(list(filter(not_empty, ['A', '', 'B', None, 'C']))) 输出: ['A', 'B', 'C']