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]系列,请点击我的主页的【每日一题】菜单。
感谢您的阅读