[每日一题]38、Python中的内置函数any()和all()

Python Every Day, 第 38 期



假设有这样一个题目,判断字符串  "My name is Danny " 中是否包含列表 ['LiMing', 'Tom', 'Danny'] 中的元素

大部分人第一反应的解法可能是...

for i in names:
    if i in str:
        print("字符串包含列表中的元素")

        

那有没有更Pythonic的方法呢?那就可以用Python的内置函数any()来实现

if any(i in str for i in names):
    print('字符串包含列表中的元素')

any():

用于判断一个可迭代函数的元素是否全为False「即 0、空字符串(''), 空列表([]), False」。如果全为False返回False,否则返回True

print(any([0, 1]))  # True 
print(any([0]))  # False


print(any(['a', 'b', '']))  # True
print(any(['', 0]))  # False


print(any(['', 0, True, False]))  # True
print(any(['', 0, False]))  # False


print(any([])) # 空列表 返回False
print(any(())) # 空元组,返回False

 

与any() 函数类似的还有一个all() 函数。 经常会混淆。

all():

all与any相反,用来判断一个可迭代函数的元素是否含有False「即 0、空字符串(''), 空列表([]), False」,如果有一个元素为False,则返回False,否则返回True。
值得注意的是,空列表和空字典会返回True
print(all([0, 1, 2]))  # False (元素0为False, 所以返回False)
print(all([1, 2, 3]))  # True


print(all(['a', 'b', '']))  # False (元素包含空字符换,所以返回False)
print(all(['a', 'b', 'c']))  # True


print(all(['a', 'b', False]))  # False (元素包含False, 所以返回False)


print(all([]))  # 空列表,返回True
print(all(()))  # 空元组,返回True



以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎点击「在看」支持,谢谢各位。

如需查看更多[Python Every Day]系列,请点击我的主页的【每日一题】菜单。

640?


感谢您的阅读

640?wx_fmt=gif



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值