列表中的偶数?
我该如何创建一个列表,并只提取或查找出其中的偶数呢?
你可以创建一个叫做 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
这个函数。