我是 Python 新手,来自 PHP 背景。我印象深刻。有没有办法从此序列中获取数字列表:
i^2, i^2 + i, i^2 + 2i, ..., n
即如果i=2
和n=30
:
4, 6, 8, ..., 30
好的,这是一个非常简单的序列,但是在功能上做这种事情的更一般的方法是什么?
也许有一些很好的函数式编程方式可以做到这一点?在 PHP 中,我想我会做一些函数,一些变量和交互,但 Python 可能能够更优雅地做到这一点?
非常感谢。
我是 Python 新手,来自 PHP 背景。我印象深刻。有没有办法从此序列中获取数字列表:
i^2, i^2 + i, i^2 + 2i, ..., n
即如果i=2
和n=30
:
4, 6, 8, ..., 30
好的,这是一个非常简单的序列,但是在功能上做这种事情的更一般的方法是什么?
也许有一些很好的函数式编程方式可以做到这一点?在 PHP 中,我想我会做一些函数,一些变量和交互,但 Python 可能能够更优雅地做到这一点?
非常感谢。
您可以使用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]
Python 有一个很酷的特性,叫做List Comprehension。你可以用它来做这样的事情:
[i*i+2*n for n in range(30) if (i*i+2*n)<=30]