python 去除字符列表内为空的元素(None,False,‘‘,等)

参考资料:

  1. 廖雪峰官方网站” python 中 高阶函数 filter 的使用
  2. python – 优雅地删除字符列表中的空字符及None元素

在参考资料2中有很好的过程分析,建议看一下。

content=['a','',None,False,'','b','c']

y=list(filter(lambda s: s and s.strip(),content))

print(y)

['a', 'b', 'c']

Python内建的filter()函数用于过滤序列。
和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

用filter()这个高阶函数,关键在于正确实现一个“筛选”函数。

注意到filter()函数返回的是一个Iterator,也就是一个惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list。

不适用list做强制转换时,该函数返回一个对象的内存地址
如下:

print(filter(lambda s: s and s.strip(),content))

<filter object at 0x000001FD3C269E10>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,判断两个字符串是否相等可以使用"=="运算符。例如,如果我们有两个字符串a和b,我们可以使用a == b来判断它们是否相等。如果相等,表达式的结果将为True,否则为False。\[3\] 需要注意的是,有时候两个字符串看起来一样,但判断却是False。这可能是因为字符串末尾有其他符号,比如回车符\n。在这种情况下,我们可以使用strip()方法去除字符串两端的字符,然后再进行比较。例如,如果我们有两个字符串a和b,我们可以使用a.strip() == b来判断它们是否相等。\[3\] 另外,如果我们想要判断两个字符串是否是同一个对象,可以使用"is"运算符。例如,如果我们有两个字符串a和b,我们可以使用a is b来判断它们是否是同一个对象。如果是同一个对象,表达式的结果将为True,否则为False。\[3\] 需要注意的是,即使两个字符串的内容相同,它们可能来自不同的内存块,因此它们的内存地址是不同的。如果我们想要判断两个字符串的内存地址是否相同,可以使用id()函数。例如,如果我们有两个字符串a和b,我们可以使用id(a) == id(b)来判断它们的内存地址是否相同。如果内存地址相同,表达式的结果将为True,否则为False。\[3\] #### 引用[.reference_title] - *1* *2* [Python字符串比较:如何判断两个字符串是否相等?](https://blog.csdn.net/update7/article/details/129718382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python判断字符串相等](https://blog.csdn.net/itigoitie/article/details/126894513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值