在Python中生成一个简单的数学序列

ale*_*ale 0 python functional-programming

我是Python的新手,来自PHP背景......我印象深刻.有没有办法从这个序列中获取数字列表:

i^2, i^2 + i, i^2 + 2i, ..., n
Run Code Online (Sandbox Code Playgroud)

即如果i=2n=30:

4, 6, 8, ..., 30

好的,这是一个非常简单的序列,但是在功能上做这种事情的更通用的方法是什么?

也许有一些很好的函数式编程方式来做到这一点?在PHP中我想我会做一些函数一些变量和交互,但Python可能能够更优雅地做到这一点?

非常感谢.

unu*_*tbu 6

您可以使用范围执行此操作:

In [186]: i = 2; n = 30; range(i**2, n+1, i)
Out[186]: [4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
Run Code Online (Sandbox Code Playgroud)

  • @BlaXpirit:在Python2中它返回一个列表.在Python3中它返回一个迭代器. (2认同)