前面的學習中,我們已經知道了兩種python的資料類型:int和str。再強調一下對資料類型的理解,這個世界是由資料群組成的,資料可能是數字(注意,別搞混了,數字和資料是有區別的),也可能是文字、或者是聲音、視頻等。在python中(其它進階語言也類似)把狀如2,3這樣的數字劃分為一個類型,把狀如“你好”這樣的文字劃分一個類型,前者是int類型,後者是str類型(這裡就不說翻譯的名字了,請看官熟悉用英文的名稱,對日後編程大有好處,什麼好處呢?誰用誰知道!)。
前面還學習了變數,如果某個變數跟一個int類型的資料用線連著(行話是:賦值),那麼這個變數我們就把它叫做int類型的變數;有時候還沒賦值呢,是準備讓這個變數接收int類型的資料,我們也需要將它聲明為int類型的變數。不過,在python裡面有一樣好處,變數不用提前聲明,隨用隨命名。
這一講中的list類型,也是python的一種資料類型。翻譯為:列表。下面的黑字,請看官注意了:
LIST在python中具有非常強大的功能。
定義
在python中,用方括弧表示一個list,[ ]
在方括弧裡面,可以是int,也可以是str類型的資料,甚至也能夠是True/False這種布爾值。看下面的例子,特別注意閱讀注釋。
>>> a=[] #定義了一個變數a,它是list類型,並且是空的。>>> type(a) #用內建函數type()查看變數a的類型,為list>>> bool(a) #用內建函數bool()看看list類型的變數a的布爾值,因為是空的,所以為FalseFalse>>> print a #列印list類型的變數a[]
不能總玩空的,來點實的吧。
>>> a=['2',3,'qiwsir.github.io']>>> a['2', 3, 'qiwsir.github.io']>>> type(a)>>> bool(a)True>>> print a['2', 3, 'qiwsir.github.io']
用上述方法,定義一個list類型的變數和資料。
本講的標題是“有容乃大的list”,就指明了list的一大特點:可以無限大,就是說list裡面所能容納的元素數量無限,當然這是在硬體裝置理想的情況下。
list索引
尚記得在《玩轉字串(3)》中,曾經給字串進行編號,然後根據編號來擷取某個或者某部分字元,這樣的過程,就是“索引”(index)。
>>> url = "qiwsir.github.io">>> url[2]'w'>>> url[:4]'qiws'>>> url[3:9]'sir.gi'
在list中,也有類似的操作。只不過是以元素為單位,不是以字元為單位進行索引了。看例子就明白了。
>>> a['2', 3, 'qiwsir.github.io']>>> a[0] #索引序號也是從0開始'2'>>> a[1]3>>> [2][2]>>> a[:2] #跟str中的類似,切片的範圍是:包含開始位置,到結束位置之前['2', 3] #不包含結束位置>>> a[1:][3, 'qiwsir.github.io']>>> a[-1] #負數編號從右邊開始'qiwsir.github.io'>>> a[-2]3>>> a[:]['2', 3, 'qiwsir.github.io']
對list的操作
任何一個行業都有自己的行話,如同古代的強盜,把撤退稱之為“扯乎”一樣,縱然是一個含義,但是強盜們願意用他們自己的行業用語,俗稱“黑話”。各行各業都如此。這樣做的目的我理解有兩個,一個是某種保密;另外一個是行外人士顯示本行業的門檻,讓別人感覺這個行業很高深,從業者有一定水平。
不管怎麼,在python和很多進階語言中,都給本來數學角度就是函數的東西,又在不同情況下有不同的稱呼,如方法、類等。當然,這種稱呼,其實也是為了區分函數的不同功能。
前面在對str進行操作的時候,有一些內建函數,比如s.strip(),這是去掉左右空格的內建函數,也是str的方法。按照一貫制的對稱法則,對list也會有一些操作方法。
追加元素
>>> a = ["good","python","I"] >>> a['good', 'python', 'I']>>> a.append("like") #向list中添加str類型"like">>> a['good', 'python', 'I', 'like']>>> a.append(100) #向list中添加int類型100>>> a['good', 'python', 'I', 'like', 100]
官方文檔這樣描述list.append()方法
list.append(x)Add an item to the end of the list; equivalent to a[len(a):] = [x].
從以上描述中,以及本部分的標題“追加元素”,是不是能夠理解list.append(x)的含義呢?即將新的元素x追加到list的尾部。
列位看官,如果您注意看上面官方文檔中的那句話,應該注意到,還有後面半句: equivalent to a[len(a):] = [x],意思是說list.append(x)等效於:a[len(a):]=[x]。這也相當於告訴我們了另外一種追加元素的方法,並且兩種方法等效。
>>> a['good', 'python', 'I', 'like', 100]>>> a[len(a):]=[3] #len(a),即得到list的長度,這個長度是指list中的元素個數。>>> a['good', 'python', 'I', 'like', 100, 3]>>> len(a)6>>> a[6:]=['xxoo']>>> a['good', 'python', 'I', 'like', 100, 3, 'xxoo']
順便說一下len(),這個是用來擷取list,str等類型的資料長度的。在字串講解的時候也提到了。
>>> name = 'yeashape'>>> len(name) #str的長度,是字元的個數8>>> a=[1,2,'a','b'] #list的長度,是元素的個數>>> len(a)4>>> b=['yeashape'] >>> len(b)1
下一講繼續list,有容乃大。