甚至数字列表?

时间:2010-11-12 17:10:44

标签: python list

如何创建列表并仅提取或搜索该列表中的偶数?

创建一个函数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]

提示:首先创建一个空列表,每当遇到偶数时,将其添加到列表中,最后返回列表。

10 个答案:

答案 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)]

返回[x for x in args if
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)