list的話題的確不少,而且,在編程中,用途也非常多。
有看官可能要問了,如果要生成一個list,除了要把元素一個一個寫上之外,有沒有能夠讓計算機自己按照某個規律生成list的方法呢?
如果你提出了這個問題,充分說明你是一個“懶人”,不過這不是什么壞事情,這個世界就是因為“懶人”的存在而進步?!皯腥恕逼鋵嵅粦?。
對list的操作
range(start,stop)生成數字list
range(start, stop[, step])是一個內置函數。
要研究清楚一些函數特別是內置函數的功能,建議看官首先要明白內置函數名稱的含義。因為在python中,名稱不是隨便取的,是代表一定意義的。關于取名字問題,可以看參考本系列的:永遠強大的函數中的《取名字的學問》部分內容。
range
n. 范圍;幅度;排;山脈
vi. (在...內)變動;平行,列為一行;延伸;漫游;射程達到
vt. 漫游;放牧;使并列;歸類于;來回走動
在具體實驗之前,還是按照管理,摘抄一段官方文檔的原話,讓我們能夠深刻理解之:
代碼如下:
This is a versatile function to create lists containing arithmetic progressions. It is most often used in for loops. The arguments must be plain integers. If the step argument is omitted, it defaults to 1. If the start argument is omitted, it defaults to 0. The full form returns a list of plain integers [start, start + step, start + 2 * step, ...]. If step is positive, the last element is the largest start + i * step less than stop; if step is negative, the last element is the smallest start + i * step greater than stop. step must not be zero (or else ValueError is raised).
從這段話,我們可以得出關于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的那個數
新聞熱點
疑難解答