列表中的偶数?

5 投票
9 回答
56198 浏览
提问于 2025-04-16 06:59

我该如何创建一个列表,并只提取或查找出其中的偶数呢?

你可以创建一个叫做 even_only(l) 的函数,这个函数只需要一个参数,就是一个整数列表。这个函数会返回一个新列表,里面只包含那些能被2整除的数字。原来的列表 l 不会被改变。

举个例子,调用 even_only([1, 3, 6, 10, 15, 21, 28]) 应该返回 [6, 10, 28],而调用 even_only([1, 4, 9, 16, 25]) 应该返回 [4, 16]

小提示:可以先创建一个空列表,每当你遇到一个偶数,就把它加到这个列表里,最后返回这个列表就可以了。

9 个回答

2

可以使用 filter 函数以一种函数式编程的方式来实现这个功能:

>>> even_filter = lambda x: not x % 2
>>> result = filter(even_filter, [0, 1, 2, 3, 4])
>>> assert result == [0, 2, 4]

补充说明:根据Vincent的评论,已经更新了零的正确奇偶性。

7

最简单的方法就是按照你在评论里说的那样,遍历输入的列表,找出能被2整除的数字,如果能整除就把它们加到返回的列表里。

list.append(x)这个函数可以帮助你把一个项目添加到列表中。

另外,正如提到的,可以使用取模操作来判断一个数字是否能被2整除...

10

“手动操作”:

def even_only(lst):
    evens = []
    for number in lst:
        if is_even(number):
            evens.append(number)
    return evens

“符合Python风格的写法”:

def even_only(iter):
    return [x for x in iter if is_even(x)]

因为这是作业,你可以自己完成 is_even 这个函数。

撰写回答