是否可以在不使用以下内容的情况下检查列表中的偶数: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。 关于如何解决这个问题的任何想法?
答案 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
快,但不确定)