这样的一段删除空字符串的代码:
def not_empty(s):
return s and s.strip()
print(list(filter(not_empty, [‘A’, ‘’, ‘B’, None,‘C’, ’ '])))

代码很简洁,效果嘛,可以丢到 Python在线工具|菜鸟教程 跑跑看,很 nice ~ 但是函数 not_empty 的返回值有点复杂,可以仔细分析一下:

  • 假设字符串a和b作and运算 a and b:
  • 若两者均为非空,则 a and b = b;
  • 若两者均非None,且至少一个为空,即 ‘’,则 a and b = ‘’
  • 若至少一个等于None,则 a and b = None
      由于 strip() 函数本身是针对 str 类型进行操作的,所以当 s = None 时,用单独用一句 return s.strip() 会报 “ ‘NoneType’ object has no attribute ‘strip’” 的错误;
      不过如果能保证 s[] 中不包含 None 成员,函数其实也可以直接写成
    def not_empty(s):
    return s.strip()
    print(list(filter(not_empty, [‘A’, ‘’, ‘B’, ‘C’, ’ '])))

因此, return s and s.strip() 的作用在于排除 s = None 的情况,而不是排除 s = ‘’ 或者 s = ’  ’ 的情况。
  但是为什么当 s = None 时,return s and s.strip()不会报错呢? 原因是当参与 and 运算的参数从前至后一旦出现一个不可能使得 and 为 True 的情况时,那么 and 运算就提前终止,又因为python本身是解释性语言,一边运行一边检查,还没有运行到 s and s.strip() 中的 s.strip() 时就已经运行完成这一句了(虚晃一枪),自然就不会报错了~
  最后用 lambda 表达式可以对上述程序作进一步封装:
def str_Nempty(s):
return list(filter(lambda s: s and s.strip(),s))
print(str_Nempty([‘A’, ‘’, ‘B’, ‘C’, ’ ']))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
有相同爱好的可以进来一起讨论哦:企鹅群号:1046795523

学习视频资料:http://www.makeru.com.cn/live/1392_1164.html?s=143793

干货来袭,收藏方便找到该网站相关推荐

  1. axure弹窗关闭_干货来袭,Axure插入图标的几种办法

    前言 在日常绘制原型的时候,经常会需要插入相应的图标(icon)到Axure中,但是看似好像很简单的事情也给蛮多小伙伴造成了困扰. 现在很多开发团队都会用一些比较常见的前端框架来搭建后台管理系统,例如 ...

  2. 程序员必须收藏的 58 个网站

    来源: https://mp.weixin.qq.com/s/LBsw9KatMl6TQrjNt--a_A 众所周知,程序员是一个需要不断学习的职业,而幸运的是,在这个互联网时代,知识就在那里,等着我 ...

  3. 干货来袭!游戏建模初学者该怎样学习?

    通过最近与建模的小伙伴们的沟通与交流,小编发现游戏建模初学者存在一些问题,对大多说想要要学游戏建模的学习者想要学什么?低模.高模制作,贴图材质,动作特效等.接下来小编就简单的说一说发现的三大点. 干货 ...

  4. 理解这几个安全漏洞,你也能做安全测试【干货建议收藏】

    01.短信炸弹 1.漏洞描述 短信轰炸攻击是常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的获取后,进行重放,如果服务器短信平台未做校验的情况时,系统会一直去发 ...

  5. 那些值得收藏的神奇的网站,使用RSS阅读器订阅喜欢的网站 --授人以鱼不如授人以渔...

    知识越是分享越是精通.姿势越学习越标准越熟练..咳咳..好邪恶...在分享自己的神器之际把自己淘宝的地方和大家共享,我觉得还是十分有必要的 一些神器的网站 包含放放面面,随机排序: 1.iPc.me  ...

  6. 干货来袭-整套完整安全的API接口解决方案

    干货来袭-整套完整安全的API接口解决方案 参考文章: (1)干货来袭-整套完整安全的API接口解决方案 (2)https://www.cnblogs.com/hubro/p/6248353.html ...

  7. Oracle 数据怎么实时同步到 Elasticsearch | 亲测干货建议收藏

    摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,很快实现了Oracle 数据实时 ...

  8. 干货丨如何准确找到剪辑点?后期剪辑进阶必看

    干货丨如何准确找到剪辑点?后期剪辑进阶必看 初级剪辑师在剪辑时可能会聚焦在已有影视素材的整理,但优秀的剪辑师关注的点应该更加巧妙细致,要真正做好剪辑,知道"什么时候该剪"很重要. ...

  9. PPT难做?花太长时间?收藏这4个网站,省时省力效率提升不止一倍

    很多人在进入职场后,通常第一个要做的是制作一份简洁有逻辑的PPT.所以如果在职场办公过程中不会使用PPT软件真的太吃亏了.很多人都常说PPT难做,花了很长时间.其实,是因为你不知道可以高效做到,只需收 ...

  10. 广东专插本计算机专业好学校,广东专插本42所院校全解析!什么专业好?哪所院校强?这些干货快收藏!...

    原标题:广东专插本42所院校全解析!什么专业好?哪所院校强?这些干货快收藏! 对于冲一冲,稳一稳,保一保的填报志愿方法,相信小伙伴们都不陌生了,但是小编发现不少考生在纠结: 这个院校多人报考吗? XX ...

最新文章

  1. noip复赛普及组2020_我校学子在2020年“外研社·国才杯”全国英语写作大赛(高职组)复赛中斩获佳绩...
  2. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
  3. rbf神经网络_基于RBF神经网络的监督控制(09)
  4. @RenderBody @RenderPage @RenderSection
  5. 计算机无法ghost安装系统安装系统安装,品牌机、笔记本无法安装Ghost版系统原因与终极方法...
  6. C++STL容器大全
  7. Python入门--基本输入输出
  8. python库快速安装_python的pip快速安装代码
  9. L1-035 情人节(两种方法)
  10. 微信小程序首支视频广告片发布
  11. amd vega56 ubuntu 下 tensorflow GPU rocm 运行情况记录及跑分
  12. CCS6.2 编译出现 error #10099-D: program will not fit into available memory. 使用哪种类型定义的变量会占用.ebss空间
  13. Win10 chm文件无法打开解决方案
  14. Java项目——云R记
  15. linux下mysql(rpm)安装使用手册
  16. App内购项目的App Store推广
  17. 台积电市值超越 IBM,蓝色巨人为何成长不再?
  18. 流程图中参与者_探索流程参与者的移动流程门户
  19. (一)论文阅读 | 目标检测之CornerNet
  20. 用html简单做一个课程表。

热门文章

  1. 文书档案管理系统服务器版,创奇文书档案管理系统客户端官方版
  2. tableau Fixed函数使用
  3. 分享写SQL的21个好习惯!
  4. *TEST 5 for NOIP 。。。
  5. typecho+handsome美化
  6. python stacktrace_pystack--python stack trace--让python打印线程栈信息
  7. GS运维常用工具及文档
  8. HDU 2246 神题?一千多行
  9. Ouino法国学习系统评价它是如何比其他学习软件
  10. 骆昊python100天百度云_GitHub - Luffy-cc/Python-100-Days: Python - 100天从新手到大师