偶数号检查没有:如果

时间:2013-03-01 00:17:46

标签: python numbers

是否可以在不使用以下内容的情况下检查列表中的偶数:if?

这是我使用时的所有内容:

import numbers

numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
           16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]

def even_list(numbers):
for i in range(len(numbers)):
    if i % 2 == 0:
    #while i !=(i / 2):
        print(i)
return i

numbers = even_list(numbers)

现在逻辑上这是有道理的,但我不知道除了if之外的任何其他方式。 你可以看到我在那里尝试使用,程序在运行时保持循环1。 关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:4)

你可以使用两个列表,一个用于平均值,一个用于赔率:

evens = []
odds = []
out = [evens,odds]
for elem in numbers:
    out[elem%2].append(elem)

print evens

或者你可以结束:

for even in evens:
    print even

模拟您当前输出的相同风格。

答案 1 :(得分:2)

def even(numbers):
   return filter(lambda n:n%2==0,numbers)

或numpy

import numpy
a = numpy.arange(100)
print a[a%2==0]

或设置操作(我认为一个不使用条件...但你需要理解集合或者你可能没有得到预期的行为,或者它可能不适用于你的数据集)

def evens(numbers):
    all_evens = set(range(0,max(numbers),2)
    return all_evens.intersection(numbers)

对偶数的替代检查是

not my_test_number&1 

(我怀疑此检查比i%2快,但不确定)