Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

序列 Sequence

Toto Lin edited this page May 8, 2017 · 3 revisions

序列 Sequence

Sequence是一个可以用来通过一个函数或者一个表达式,制造各种序列的东西。

使用方法如下面代码所示:

Sequence(lambda i, f: 2*i+1) # f(i)=2*i+1
Sequence(lambda i, f: f(i-1) + 1, [0, 1]) # f(i)=f(i-1)+1, f(0)=0, f(1)=1
Sequence(lambda i, f: f(i-1) + 1, {100: 101, 102: 103}) # f(i)=f(i-1)+1, f(100)=101, f(102)=103

其第一个参数为一个lambda函数,该lambda函数的第一个参数i代表这是序列的第几项,而第二个参数f则是一个可以获取该数列任意一项的函数。

第二个参数则是一个数组或dict,默认为空,是该序列的初始值列表。当这个序列的表达式中需要使用到f(即,需要递归进去获取函数值)的时候,必须提供第二个参数,否则找不到初始值会陷入死循环。

我们可以对其做如下操作:

seq = Sequence(lambda i, f: f(i-1) + 2, [0, 2, 4])
seq.get(3) # 6
seq.get(4, 6) # [8, 10, 12]
io.input_write(seq.get(7, 10)) # 可以直接传递给IO库,写入14 16 18 20

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /