【问题标题】:How to find a first even number in a list如何在列表中找到第一个偶数
【发布时间】:2016-01-16 07:03:38
【问题描述】:

如果列表中有偶数,则返回第一个,如果没有偶数,则返回-1。 比如这样:

>>> first_even([5, 8, 3, 2])
8
>>> first_even([7, 1])
-1

我尝试了一些能够返回第一个偶数但不知道 -1 的函数。请任何人都可以给我一个建议。

【问题讨论】:

    标签: python list loops


    【解决方案1】:

    你可以使用forelse

    >>> def first_even(x):
        for i in x:
            if i%2 == 0:
                return i
        else:
            return -1
    >>> first_even([5, 8, 3, 2])
    8
    >>> first_even([7, 1])
    -1
    

    【讨论】:

    • 谢谢老兄!我忘了用 else 来取奇数条件。
    • 这里相同,它会将 0 视为偶数!
    • 更改为if i > 0 and i%2 == 0:
    【解决方案2】:

    您可以为此使用next() -

    def first_even(lst):
        return next((e for e in lst if e%2==0),-1)
    

    示例运行 -

    >>> def first_even(lst):
    ...     return next((e for e in lst if e%2==0),-1)
    ...
    >>> first_even([5, 8, 3, 2])
    8
    >>> first_even([7, 1])
    -1
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    相关资源
    最近更新 更多