如何创建列表并仅提取或搜索该列表中的偶数?
创建一个函数even_only(l)
,它将整数列表作为唯一参数。该
function将返回一个新列表,其中包含l的所有(且唯一)元素,它们可被2整除。原始列表l应保持不变。
例如,even_only([1, 3, 6, 10, 15, 21, 28])
应该返回[6, 10, 28]
,并且
even_only([1, 4, 9, 16, 25])
应该返回[4, 16]
。
提示:首先创建一个空列表,每当遇到偶数时,将其添加到列表中,最后返回列表。
答案 0 :(得分: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
功能。
答案 1 :(得分:7)
最简单的方法是做你在评论中发布的内容 - 遍历输入列表,找到可被2整除的数字,如果是这样,将它们添加到返回列表中。
list.append(x)
功能可以帮助您将项目添加到列表中。
同样如上所述,请查看使用modulo操作来确定数字是否可以被2整除...
答案 2 :(得分:2)
这样做的最佳方式(作为初学者)可能是一个理解列表。由于这是一个家庭作业,我不会为你做,但这里是语法:
[x for x in your_list if (your condition)]
你必须用适合的东西(基本上,正如你所描述的那样)替换(你的情况)。
P.S。我知道有些人可能会说理解列表对初学者来说有点先进,但我认为这不是一个难以捕捉并且非常有用的概念。
答案 3 :(得分:2)
使用filter
功能以功能方式执行此操作:
>>> even_filter = lambda x: not x % 2
>>> result = filter(even_filter, [0, 1, 2, 3, 4])
>>> assert result == [0, 2, 4]
编辑:根据Vincent的评论更新正确的零奇偶校验。
答案 4 :(得分:2)
>>> a = [1, 3, 6, 10, 15, 21, 28]
>>> b = [i for i in a if i%2 ==0 ]
>>> b
[6, 10, 28]
>>> a
[1, 3, 6, 10, 15, 21, 28]
答案 5 :(得分:2)
>>> even_only = lambda seq : [ x for x in seq if str(x)[-1] in "02468" ]
>>> even_only([1, 3, 6, 10, 15, 21, 28])
[6, 10, 28]
答案 6 :(得分:1)
我最近遇到过这个问题并使用过:
list=[1,2,3,4,5,6] #whatever your list is, just a sample
evens=[x for x in list if np.mod(x,2)==0]
print evens
返回[2,4,6]
答案 7 :(得分:0)
似乎有点晚了,但下面对我有用:
def even_list(* args):
#返回列表中的偶数号
如果(x%2 == 0)]
even_list(1,2,3,4,5,6,7,8)
[2, 4, 6, 8]
答案 8 :(得分:0)
对于列表中的每个元素,如果列表模的元素为0,则数字为偶数
initial_list = [1,22,13,41,15,16,87]
even_list = [ x for x in initial_list if x % 2 == 0]
even_list
# [22, 16]
答案 9 :(得分:-1)
全部=(1,3,6,10,15,21,28) 从itertools导入takewhile Evenonly = takewhile(lambda x:x%2 == 0,All) 打印(列表(Evenonly)