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/

上一篇下一篇

猜你喜欢

热点阅读