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