資料型別之list/tuple
阿新 • • 發佈:2018-12-18
1.list(列表) 定義list: a_list = [1,2,3] #表現形式方括號 print(a_list)
list的長度: a_list = [1,2,3] print(len(a_list)) #len list索引: a_list = [1,2,3] print(a_list[0]) #索引從0開始,超出索引範圍報錯 list追加元素: a_list = [1,2,3] a_list.append(23) print(a_list) #可追加任何型別 列表合併: a_list = [1,2,3] b_list = [4,5,6] a_list.extend(b_list) print(a_list) 指定位置插入元素: a_list = [1,2,3] a_list.insert(1,3) #第一個引數元素索引,第二個為插入的值 print(a_list) list彈出末尾的值: a_list = [1,2,3] a_list.pop() print(a_list) #[1,2 彈出指定位置的元素,刪除指定的元素: a_list = [1,2,3] a_list.pop(1) print(a_list) #[1,3] a_list.remove(2) print(a_list) #[1,3] #索引從1 a_list.clear() #刪除所有元素 替換列表元素: a_list = [1,2,3] a_list[0]=12 print(a_list) #[12,2,3] 刪除元素; a_list = [1,2,3,1,2,3,5,6,9,4,5,6,] a_list.remove(2) print(a_list) #[1, 3, 1, 2, 3, 5, 6, 9, 4, 5, 6] #注意上面並沒有全部刪除2這個元素。怎麼辦?請看下面 第一種方法可以用迴圈遍歷來刪除: for i in a_list[:]: if i == 2: a_list.remove(2) print(a_list) 第二種方法可以用count方法來統計元素總數,然後來刪除: a_list = [1,2,3,1,2,3,5,6,9,4,5,6,] num = a_list.count(2) for i in range(num): a_list.remove(2) print(a_list) 列表推導式: 快速生成列表 print([i for i in range(1,10)]) 列表排序: a_list = [1,2,3,4,5,6] a_list.sort(reverse=False) #正向 a_list.sort(reverse=True) #反向 最大值:print(max(a_list)) 最小值:print(min(a_list)) 列表拷貝: 深拷貝: import copy a=[1,2,3,['a','e',[2,3]]] b=a d=copy.deepcopy(b) a[0]=300 print(a) print(d) #深拷貝是全部拷貝 最外層和最內層 淺拷貝: # l1 = [1,2,3,[11,22,33]] # l2 = l1.copy() # print(l2) #[1,2,3,[11,22,33]] # l2[3][2]='aaa' # print(l1) #[1, 2, 3, [11, 22, 'aaa']] # print(l2) #[1, 2, 3, [11, 22, 'aaa']] # l1[0]= 0 # print(l1) #[0, 2, 3, [11, 22, 'aaa']] # print(l2) #[1, 2, 3, [11, 22, 'aaa']] # print(id(l1)==id(l2)) #Flase #淺拷貝是拷貝最內層 list切片: b_list = [1,2,3,4,6,5,4,8,6,7] print(b_list[0:2]) #1,2 print(b_list[-2:]) #6,7
2.tuple(元祖) tuple表現形式(),可理解為不可改變的list: 定義tuple: a_tuple = (1,2,3,4,5,6) print(a_tuple)
tuple索引: a_tuple = (1,2,3,4,5,6) print(a_tuple[-1]) #6 tuple陷阱: a_tuple = (1) print(type(a_tuple)) #<class 'int'> 注意:單個元素的元素要加逗號 tuple的不可改變性: a_tuple = (1,2,3,4,5,6) a_tuple[0] = 23 #會報錯 print(a_tuple) tuple沒有list的append, insert, pop方法 tuple巢狀: a_tuple = (1,2,3,4,5,6,[1,2,3,4]) print(a_tuple) a_tuple[6][0] = 0 print(a_tuple) #(1, 2, 3, 4, 5, 6, [0, 2, 3, 4]) list可修改 1.list與tuple主要區別: (邏輯,記憶體比較) # 相同點:都是序列,容器裡元素是有順序的,有index屬性,都是可以迭代的 # 不同點: # list容器中元素可以改變,,tuple容器中元素是不可以改變的 tuple切片: a_tuple = (1,2,3) print(a_tuple[-3:-1]) #1,2 mix_list = [[1, 2, 3], (4, 5), ['tom', 'ben']] mix_list.append((6, 7)) #新增 print(mix_list.pop()) #彈出最後一個元素 print(mix_list.pop(0)) #彈出第一個元素
‘’‘ 作業: 1. 將列表[1,3,[‘hello’,‘eric’,‘ben’],‘good’]轉換為元組 2. 如何獲取 變數 list_a=[1,3,[‘hello’,‘eric’,‘ben’],‘good’]中’hello’這個字串 list_a[m][n] m=? n=? 3. list_1 = [1,1,2,3,4,3,2,1],獲取數字2的所有索引值,刪除該列表中所有的1。 4. 採用列表推導式快速產生一副撲克牌。如下 花色為 * @ # $, K1為大王, K2為小王 [’*A’,‘K2’,’@3’,’@4’]
’‘’