python使用filter函数排除list里的None
时间: 2023-12-04 16:01:50 浏览: 41
可以使用 `filter` 函数结合 `lambda` 表达式来排除列表中的 `None` 元素。下面是一个示例代码:
```python
my_list = [1, None, 3, None, 5]
filtered_list = list(filter(lambda x: x is not None, my_list))
print(filtered_list)
```
输出结果为:
```
[1, 3, 5]
```
在这个示例中,我们使用 `lambda` 表达式来定义过滤器函数,该函数返回 `True` 如果元素不是 `None`,否则返回 `False`。然后,我们使用 `filter` 函数将过滤器应用到 `my_list` 中的每个元素,并将结果转换为一个新列表 `filtered_list`。
相关问题
python的filter函数
filter函数是Python内置的高阶函数之一,用于过滤序列中的元素。它的基本形式为:
filter(function, iterable)
其中,function是一个函数,用于对iterable中的元素进行过滤;iterable是一个可迭代对象,可以是列表、元组、集合、字符串等。
filter函数返回一个迭代器,其中包含了所有满足function条件的元素。如果function为None,则默认返回所有非零元素。
例如:
```python
# 过滤出列表中的偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8]
even_lst = list(filter(lambda x: x % 2 == 0, lst))
print(even_lst)
# 输出:[2, 4, 6, 8]
```
在上面的代码中,使用lambda表达式定义了一个匿名函数,用于判断列表中的元素是否为偶数,然后将满足条件的元素过滤出来,并转化为列表输出。
另外,filter函数也可以用于去除序列中的重复元素。例如:
```python
# 去除列表中的重复元素
lst = [1, 2, 3, 2, 4, 3, 5, 6, 5, 7]
unique_lst = list(filter(lambda x: lst.count(x) == 1, lst))
print(unique_lst)
# 输出:[1, 4, 6, 7]
```
在上面的代码中,使用lambda表达式定义了一个匿名函数,用于判断列表中的元素是否唯一,然后将满足条件的元素过滤出来,并转化为列表输出。
python filter函数 去除空值
可以使用 filter 函数去除列表中的空值,示例代码如下:
```python
lst = ['hello', '', 'world', None, ' ', 'python']
result = list(filter(lambda x: x and x.strip(), lst))
print(result) # ['hello', 'world', 'python']
```
在这个例子中,我们使用了 lambda 表达式来定义过滤条件,即去除空值和空格。最后使用 list 函数将 filter 对象转换为列表。