甚至是Python中的数字

时间:2010-02-02 14:32:30

标签: python range

有没有人知道Python是否具有内置函数来打印出偶数值。比如range()例如。

由于

8 个答案:

答案 0 :(得分:57)

Range has three parameters.

您可以撰写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 recipesn从序列中选择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.tabulateitertools recipe,它将函数映射到数字行的每个值(请参阅source code)。
  • ℃。 more_itertools.iterate产生起始值(0)。然后它将函数应用于最后一项(递增2),得到结果并重复此过程(参见source code)。

1 实施许多有用工具的第三方软件包,包括taketabulateitertools 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)