首頁 >後端開發 >Python教學 >python序列之列表

python序列之列表

巴扎黑
巴扎黑原創
2017-07-20 09:34:471316瀏覽

附註:本文測試環境為python 2.7

列表(list),同數組不同,它既可以儲存相同類型的數據,也可也儲存不同類型的資料

list1 = [1,2,3]

list2 = [1,'hello',False]

列表屬於序列,所以兼顧序列的一些通用特性

 

#1、索引

list1 = [1,2,3,4]

列表的索引由左往右,從0開始,依序+1

s1[0]代表第一個元素,這裡s1[0] = 1

從右往左取索引,從-1開始,依序-1

s1[-1]代表最後一個元素,這裡s1[-1] = 4

 

2、分片

分片運算子為':'(冒號),分片運算是產生新清單的一種很方便的方式

s1 = [1,2,3,4]

s2 = s1[1:3] #第一個參數為開始的索引,第二個參數為結束的索引(結束索引處的元素是無法取到的,1:3只能取到索引1和2)

輸出結果:s2 = [2,3]

s3 = s1[1:-1] #這裡索引-1相當於上面的3

#輸出結果:s3 = [2,3]

 

註1:參數1與參數2都可以省略參數1,省略時代表起始索引0 參數2,省略時代表最大位置索引

註2:s1[-1,1] = [ ] ,從最後一個索引,取到開始的索引,這樣返回是空列表。事實上,當左邊的索引比右邊晚出現時,都會返回空列表

當我們需要倒取整個列表時,我們引入了步長這個概念

s1[a:b :c],分片操作其實有三個參數,參數1和2已經介紹過了,參數3即為步長,預設步長可以省略,預設為1

所以s1[:] 回傳整個列表另外s1[::-1] 返回整個反轉列表

 

關於分片操作,我們寫如下幾行程式碼

s1 = [1,2, 3,4]

s2 = s1 #將s1賦值給s2

#s3 = s1[:] #將s1的列表賦值給s3

#print s1==s2 #判斷s1與s2的值是否相同

print s1==s3

print s1 is s2 #判斷s1和s2是否是同一個序列

#print s1 is s3

為了拷貝出一個新的序列,直接賦值顯然是不行的,我們使用了分片

 

3、加/乘

s1 = [1,2,3]

s2 = [4,5,6]

s = s1+s2 兩個清單相加後,回傳新清單s=[1,2 ,3,4,5,6]

s3 = 'hello'

s4 = (1,2,3)

s1+s3

s1+s4

該語句執行後,會報錯

 

註:雖然字串和元組,都和列表一樣為序列,但是兩者不能直接相加

這裡:引入一個內建函數list(),可以將字串或元組直接轉換成字串s1 + list(s3) s1 + list(s4) 這樣,就可以正常執行了

附註:list()可以將字串、元組等序列轉換成列表,如何將列表轉換成字串呢?

eg:s = ''.join(list1) ,可以將列表list1轉換成字串s

 

列表的乘法s1 = [1]

s2 = s1*10

回傳s2 = [1,1,1,1,1,1,1,1,1,1]

#常用來宣告空列表

s1 = [None] #這時候使用s1 = [] 是不行的

s2 = s1*10

宣告了一個長度為10的空列表

 

4、檢查元素是否存在s1 = [1,2,3]  

if 1 in s1:  

  print "元素存在"

else:

  print "元素不存在"

 

5、清單常用內建函數

list1 = [1,2,3, 4]

 

len(list1) #取列表長度

#max(list1) #取列表最大值

min(list1) #取列表最小值

sum(list1) #對列表成員求和,求和的列表成員中不能有字串,否則會報錯

cmp(list1,list2) #比較兩個列表的大小,返回結果為1,-1,0

比較規則全是數字,比較最小的數字

字母大於數字

字母從首字母按出現順序比較

全部一致,比較長度,長的更大都一致,視為相等,回傳0

 


以上是python序列之列表的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn