0

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

i^2, i^2 + i, i^2 + 2i, ..., n

即如果i=2n=30

4, 6, 8, ..., 30

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

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

非常感谢。

4

2 回答 2

6

您可以使用range执行此操作:

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]
于 2012-11-23T22:16:20.573 回答
0

Python 有一个很酷的特性,叫做List Comprehension。你可以用它来做这样的事情:

[i*i+2*n for n in range(30) if (i*i+2*n)<=30]
于 2012-11-23T22:17:02.697 回答