美文网首页我们就爱程序媛
python的and左右有玄机

python的and左右有玄机

作者: 予岁月以文明 | 来源:发表于2017-10-27 14:23 被阅读1次

廖雪峰filter教程中有这么一段函数

def not_empty(s):
    return s and s.strip()

list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))

处理空字符,开始不理解为什么not_empty返回的不是布尔值,而是str。。。
原来表示真假的不只有布尔值TRUE和false,空字符串,空字典,列表,数字0,none,都是FALSE。
另外一点是,在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。如果布尔上下文中的某个值为假,则 and 返回第一个假值。

>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
>>> 'a' and 'b' and 'c'
'c'

回到廖雪峰的例子,直接用lambda更简洁。

print(list(filter(lambda x: x and x.strip(), ['A', '0','', 'B', None, 'C', '  '])))

遇到第一个空字符串,and返回的是假,遇到多个空格,and返回的是真,而且返回右边的数值,也就是空格.strip(),结果又变成了空(假的),所以删除了。

不过他的这个表达式如果遇到数字就完蛋了。我用正则修改了一下,不管数字还是其他都能处理掉。

print(list(filter(lambda x: x and re.sub('\s','',x), ['A', '0','', 'B', None, 'C', '  ',0])))

相关文章

  • python的and左右有玄机

    廖雪峰filter教程中有这么一段函数 处理空字符,开始不理解为什么not_empty返回的不是布尔值,而是str...

  • Python IDE与Tensorflow环境配置

    Python IDE的安装 Python的IDE有很多,推荐安装Pycharm,安装包也就300M左右。也是jet...

  • 数字有玄机

    这几天选手机号和店铺号, 前后两天的时间看了不下两千个号, 而且基本是都用卦排了一遍。钻在数字里头都快不转了, 几...

  • 动机有玄机

    . 内应直觉返化机, 外感自觉复中理。 任运震频,承负节率。 性向潜现而说: 德为道心,道为德魂。 定向活体而论:...

  • 暗有玄机

    周锐迷迷糊糊地醒了过来,他费力地睁开了双眼,但什么也看不到,屋内一片漆黑。 他感觉到自己的头晕乎乎的,浑身上下还酸...

  • “奥通玻璃”玄机

    “奥通玻璃”玄机 文/黄影 天地之间有玄机,有人知道,但他不愿泄漏。正所...

  • 【玄机的玄机】

    玄机当中必然有个拐点既可以是临界点或者是奇点总之就是一个转捩点也许应该叫做支点它的主要作用控制万事万物的动态平衡 ...

  • 鱼玄机:长长来路,命有玄机

    我枯坐在这间小小囚室很久了,四周都是高墙。靠着的这面高墙,在几乎快与天花板相接的地方,有一个窗口。它在白天总是灰白...

  • 白虎的“白”有玄机

    在广袤的生物圈中,行走着万千的顶级猛兽老虎。橙黑线条的印度虎,是老虎“家族”的重要成员,在年复一年的繁衍生息中,也...

  • 开关事件有玄机

    今天我们要讲一讲开关事件,这个名词比上期的瞄定事件要容易接受地多了。 开关我们都知道,经常要开,也经常要关。所以,...

网友评论

    本文标题:python的and左右有玄机

    本文链接:https://www.haomeiwen.com/subject/ohgrpxtx.html