72.去除列表中的空元素

利用正则表达式一不小心就会产生空元素,这不是我们所需要的。为了防止空元素情况的发生,不妨对列表进行清洗。方法如下:

import re
str='bacdone1cdonone345dhdfgkone'
p=re.compile(r'[a-zA-Z]*one')
subs=re.split(p,str)

print(subs)
for sub in subs:
    print("*"+sub,end=",")
print('元素个数是:',len(subs))

#去掉列表中的空元素
while '' in subs:
    subs.remove('')
print(subs)
print('元素个数是:',len(subs))

输出:

在Python中,可以通过多种方式从列表中移除元素。常见的元素包括`None`、字符串`""`、列表`[]`、字典`{}`等。以下是几种常用的方法: ### 使用列表推导式过滤元素 列表推导式是一种简洁高效的方式,可以用于过滤掉所有被认为是“”的元素。在Python中,如果一个对象的值为以下情况,则会被认为是“”: - `None` - `False` - 数值类型中的 `0`, `0.0` - 字符串 `""` - 列表 `[]` - 元组 `()` - 字典 `{}` ```python original_list = [None, "Python", "", 0, 42, [], {}, False] filtered_list = [item for item in original_list if item] print(filtered_list) ``` 输出结果将是: ``` ['Python', 42] ``` 这是因为除了`"Python"`和`42`之外的所有元素都被视为“”。[^3] ### 过滤特定类型的元素 如果希望仅移除某些特定类型的元素(例如仅移除字符串),可以使用更具体的条件。 ```python original_list = ["", "Python", "", 42, None, "Hello"] filtered_list = [item for item in original_list if item != ""] print(filtered_list) ``` 输出结果将是: ``` ['Python', 42, None, 'Hello'] ``` ### 使用`filter()`函数 还可以结合`filter()`函数与`None`参数来移除所有被认为是“”的元素。 ```python original_list = [None, "Python", "", 0, 42, [], {}, False] filtered_list = list(filter(None, original_list)) print(filtered_list) ``` 输出结果将是: ``` ['Python', 42] ``` ### 移除字符串或特定类型的值 如果需要保留布尔值`False`或其他特殊类型的值,而仅移除字符串,可以使用自定义条件。 ```python original_list = ["", "Python", None, "Hello", False, 0] filtered_list = [item for item in original_list if not (isinstance(item, str) and item == "")] print(filtered_list) ``` 输出结果将是: ``` ['Python', None, False, 0] ``` 这种方法允许更精细地控制哪些元素应被移除。[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值