【python】入門指南:常用資料結構
Python內建了三種高階資料結構:list,tuple,dict
list:陣列,相同型別的元素組成的陣列
tuple:元組,相同型別的元素組成的陣列,但是這裡有限定條件(長度是固定的,並且值也是固定的,不能被改變)
dict:字典,k-v結構的
list陣列
1,初始化和遍歷list
#!/bin/python a = [1, 2, 3] print(a, type(a)) for i in a: print(a)
輸出:
[1, 2, 3] <class 'list'> [1, 2, 3]
2,list新增和刪除元素
a = [1, 2, 3] a.append(4) print(a) # 1,2,3,4 a.insert(1, 11) print(a) #1,11,2,3,4
解釋:append是在末尾新增元素,insert(n, data)在下標n的位置新增data,原先下標n的元素依次往後移動1位
a = [1, 2, 3, 4] a.pop() print(a) # 1,2,3 a = [1, 2, 3, 4] a.pop(1) print(a) # 1,3,4
pop()預設將最後一個數值pop出來,pop(n)是將下標為n的位置元素pop出來(這裡如果n大於最大下標,python會丟擲異常out of range)
整個將list清空掉
a = [1, 2, 3] del a print(a)
這裡會報錯:a is not defined,表名del a這個操作不是僅僅清空a的元素,而且把a本身從程式中刪除掉
3,查詢元素(根據key和value來查詢)
判斷a是否包含某個key值,要使用:key <= len(a) - 1
a = [1, 2, 3, 4] if 3 <= len(a) - 1: print('a[3] exist') if 4 <= len(a) - 1: print('a[4] exist') else: print("a[4] does not exist")
輸出:
a[3] exist a[4] does not exist
元素查詢:a.count(value)
a = [1, 2, 3, 4] print(a.count(1)) #1 print(a.count(5)) #0
count返回a中包含元素value的次數
元素查詢:a.index(value)
a = [1, 2, 3, 4] print(a.index(1)) #0 print(a.index(0))
index是返回value在a中所在的下標,如果value沒在a中出現,則python丟擲異常:{value} is not in list
4,更新某個key值
a = [1, 2, 3, 4] if 3 <= len(a) - 1: a[3] = 100 else: print("a[3] does not exist") print(a, len(a)) #1,2,3,100
更新某個key的value需要根據下標來更新,但是必須確定該key是未越界的,即不能大於len(a) - 1
5,切片
a = [1, 2, 3, 4, 5] print(a[:]) #[1, 2, 3, 4, 5] print(a[1:2]) #[2] print(a[1:-1]) #[2,3,4] print(a[1:0]) #[] print(a[1:]) #[2,3,4,5] print(a[:2]) #[1,2] print(a[:-1]) #[1,2,3,4] print(a[:0]) #[] print(a[-3:]) #[3,4,5] print(a[-3:-1]) #[3,4] print(a[-3:0]) #[]
理解:a[n:m],從下標為n的元素開始從左往右數,數到下標為m-1的元素停止
理解n或者m為負值,則他實際計算時遵循的公式是:len(a) + n或者len(a) + m
比如a=[1,2,3,4,5], a[-1:]此處n為-1,實際開始下標為:len(a) + n = 5 + n = 5 - 1 = 4
6,其它相關函式
輔助函式1:enumerate
a = [1, 2, 3, 4, 5] for i, v in enumerate(a): print(i, v)
輔助函式2:count(計算list中包含某個元素的次數)
輔助函式:排序相關,sort,reverse
關於list的更詳盡的內容參考:http://www.runoob.com/python/python-lists.html