跟老齐学Python之有容乃大的list(4)
list的话题的确不少,而且,在编程中,用途也非常多。
有看官可能要问了,如果要生成一个list,除了要把元素一个一个写上之外,有没有能够让计算机自己按照某个规律生成list的方法呢?
如果你提出了这个问题,充分说明你是一个“懒人”,不过这不是什么坏事情,这个世界就是因为“懒人”的存在而进步。“懒人”其实不懒。
对list的操作
range(start,stop)生成数字list
range(start,stop[,step])是一个内置函数。
要研究清楚一些函数特别是内置函数的功能,建议看官首先要明白内置函数名称的含义。因为在python中,名称不是随便取的,是代表一定意义的。关于取名字问题,可以看参考本系列的:永远强大的函数中的《取名字的学问》部分内容。
range
n.范围;幅度;排;山脉
vi.(在...内)变动;平行,列为一行;延伸;漫游;射程达到
vt.漫游;放牧;使并列;归类于;来回走动
在具体实验之前,还是按照管理,摘抄一段官方文档的原话,让我们能够深刻理解之:
Thisisaversatilefunctiontocreatelistscontainingarithmeticprogressions.Itismostoftenusedinforloops.Theargumentsmustbeplainintegers.Ifthestepargumentisomitted,itdefaultsto1.Ifthestartargumentisomitted,itdefaultsto0.Thefullformreturnsalistofplainintegers[start,start+step,start+2*step,...].Ifstepispositive,thelastelementisthelargeststart+i*steplessthanstop;ifstepisnegative,thelastelementisthesmalleststart+i*stepgreaterthanstop.stepmustnotbezero(orelseValueErrorisraised).
从这段话,我们可以得出关于range()函数的以下几点:
这个函数可以创建一个数字元素组成的列表。
这个函数最常用于for循环(关于for循环,马上就要涉及到了)
函数的参数必须是整数,默认从0开始。返回值是类似[start,start+step,start+2*step,...]的列表。
step默认值是1。如果不写,就是按照此值。
如果step是正数,返回list的最最后的值不包含stop值,即start+istep这个值小于stop;如果step是负数,start+istep的值大于stop。
step不能等于零,如果等于零,就报错。
在实验开始之前,再解释range(start,stop[,step])的含义:
start:开始数值,默认为0,也就是如果不写这项,就是认为start=0
stop:结束的数值,必须要写的。
step:变化的步长,默认是1,也就是不写,就是认为步长为1。坚决不能为0
实验开始,请以各项对照前面的讲述:
>>>range(9) #stop=9,别的都没有写,含义就是range(0,9,1) [0,1,2,3,4,5,6,7,8]#从0开始,步长为1,增加,直到小于9的那个数 >>>range(0,9) [0,1,2,3,4,5,6,7,8] >>>range(0,9,1) [0,1,2,3,4,5,6,7,8]
>>>range(1,9) #start=1 [1,2,3,4,5,6,7,8]
>>>range(0,9,2) #step=2,每个元素等于start+i*step, [0,2,4,6,8]