有没有人知道Python是否具有内置函数来打印出偶数值。比如range()例如。
由于
答案 0 :(得分:57)
您可以撰写range(0, 10, 2)
。
答案 1 :(得分:9)
只需使用2的步骤:
range(start, end, step)
答案 2 :(得分:6)
尝试:
range( 0, 10, 2 )
答案 3 :(得分:6)
我不知道这是否是你想听到的,但用列表理解过滤掉奇数值是非常简单的。
evens = [x for x in range(100) if x%2 == 0]
或
evens = [x for x in range(100) if x&1 == 0]
您还可以使用range
的可选步长参数来计算2。
答案 4 :(得分:0)
>>> if 100 % 2 == 0 : print "even"
...
even
答案 5 :(得分:0)
还有一些方法可以编写偶数数的惰性无限迭代器。
我们将使用itertools
模块和more_itertools
1 来制作模拟range()
的迭代器。
import itertools as it
import more_itertools as mit
# Infinite iterators
a = it.count(0, 2)
b = mit.tabulate(lambda x: 2 * x, 0)
c = mit.iterate(lambda x: x + 2, 0)
所有后面的选项都可以生成无限连续的偶数序列0, 2, 4, 6, ...
。
您可以通过循环处理这些产品来处理这些产品,或者您可以通过itertools.islice
中的itertools recipes或n
从序列中选择take
个数字,例如:< / p>
mit.take(10, a)
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
这相当于list(range(0, 20, 2))
。但是,与range()
不同,迭代器暂停,如果再次运行,将产生下一批偶数:
mit.take(10, a)
# [20, 22, 24, 26, 28, 30, 32, 34, 36, 38]
<强>详情
所提供的选项都是start
带有整数的无限迭代器,即0
。
itertools.count
产生的下一个值增加step=2
(请参阅equivalent code)。more_itertools.tabulate
是itertools recipe,它将函数映射到数字行的每个值(请参阅source code)。 more_itertools.iterate
产生起始值(0
)。然后它将函数应用于最后一项(递增2),得到结果并重复此过程(参见source code)。 1 实施许多有用工具的第三方软件包,包括take
和tabulate
等itertools recipes。 < / SUP>
答案 6 :(得分:-1)
#This is not suggestible way to code in Python, but it gives a better understanding
numbers = range(1,10)
even = []
for i in numbers:
if i%2 == 0:
even.append(i)
print (even)
答案 7 :(得分:-1)
a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
b = [i for i in a if i % 2 == 0]
print("Original List -->", a,"\n")
print("and the Even Numbers-->", b)