Python中的 any() 函数用法对比
2018-10-22 本文已影响0人
Michael_lllll
计算列表中是否含有被7整除的数
思路一
建立一个新的被7除的余数列表,检测新列表是否含有0
def has_lucky_number(nums):
"""Return whether the given list of numbers is lucky. A lucky list contains
at least one number divisible by 7.
"""
new_nums=[]
for num in nums:
new_nums.append(num % 7)
return 0 in new_nums
这样的计算效率不高,需要遍历列表中的所有值,而问题所需仅是存在一个符合要求的值即可。
思路2
def has_lucky_number(nums):
for num in nums:
if num % 7 == 0:
return True
# We've exhausted the list without finding a lucky number
return False
检测到第一个符合要求的值计算便结束。
any() 函数运用
def has_lucky_number(nums):
return any([num % 7 == 0 for num in nums])
非常简洁,一行搞定。并且同样在检测到第一个符合要求的值计算便结束。
参考链接:https://www.kaggle.com/wangmiaobeng/exercise-loops-and-list-comprehensions/