列表及元組
阿新 • • 發佈:2018-07-31
clas rep type 切片 返回值 可變對象 aid bject sign
一.列表的介紹:
列表是Python數據類型之一, 其他編程語言也有類似的數據類型.比如JS中的數組,java中的數組等等,他是以 [] 括起來,每個元素用 ‘,‘ 隔開,而且可以存放各種數據類型
1 lst = [1,"lx","我是",[1,‘我‘,"長時間啊"],("我叫元組",123,"lx"),"cde",{"我叫字典":48,"字典":"你好啊"},{"我叫集合","集合"}]
列表相比於字符串. 不僅可以存放不同的數據類型. ?且可以存放?量的數據. 32位 python可以存放: 536870912個元素, 64位可以存放: 1152921504606846975個元素.?且列 表是有序的(按照你保存的順序),有索引, 可以切??便取值.
1.1 列表的索引與切片
列表和字符串?樣也擁有索引:
例如:
1 = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 print(lst[0]) # 獲取第一個元素 3 print(lst[1]) # 獲取第二個元素 4 lst[0] = ‘馬化騰‘ 5 print(lst) # 註意. 列表是可以發?改變的. 這?和字符串不?樣 6 # s = "第一" 7 # s[0] = "我" 8 # print(s) # 字符串不能改變原字符串 9 # TypeError: ‘str‘ obje 10 11 結果 12 麻花騰 13 馬雲 14 [‘馬化騰‘, ‘馬雲‘, ‘王健林‘, ‘許家印‘, ‘雷軍‘, ‘劉強東‘]
列表的切片:
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 print(lst[0:3]) 3 print(lst[:3]) 4 print(lst[::2]) #列表也有步長 5 print(lst[::-1]) #也能到著取 6 print(lst[-1:-5:-1]) #到著帶步長 7 8 #結果 9 [‘麻花騰‘, ‘馬雲‘, ‘王健林‘] 10 [‘麻花騰‘, ‘馬雲‘, ‘王健林‘] 11 [‘麻花騰‘, ‘王健林‘, ‘雷軍‘] 12[‘劉強東‘, ‘雷軍‘, ‘許家印‘, ‘王健林‘, ‘馬雲‘, ‘麻花騰‘] 13 [‘劉強東‘, ‘雷軍‘, ‘許家印‘, ‘王健林‘]
?. 列表的增刪改查
1. 增, 註意, list和str是不?樣的. lst可以發?改變. 所以直接就在原來的對象上進?了操 作
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 lst.append("戴和順") 3 lst.insert(1,"戴和順") 4 lst.extend(["李嘉誠"]) #在原列表中末尾處追加一個序列,該序列中的所有元素都會被添加至願列表的末尾,返回值為None 5 print(lst)
2. 刪除
pop() , remove(), clear(), del
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 lst1 = lst.pop(0) #pop() 利用索引刪除元素,並返回該元素 3 print(lst1) 4 lst.remove("麻花騰") #直接刪除裏面元素 5 lst.clear() # 清空列表 6 del lst[1:3] # del 與切片類似 7 print(lst)
3. 修改
索引切片修改
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 lst[0] = ‘馬化騰‘ 3 lst[1:4:2] = "mayun","wangjianlin" #切?修改也OK. 如果步?不是1, 要註意. 元素的個數 4 lst[1:5] = ["ninainaidetui"] #如果切?沒有步?或者步?是1. 則不?關?個數 5 print(lst)
4. 查詢, 列表是?個可叠代對象, 所以可以進?for循環
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 for et in lst: 3 print(et)
5. 其他操作
1 lst = [1,2,5,9,6,7,2,5] 2 c = lst.count(2) # 查詢次數 3 print(c) 4 lst.sort() #按從小到大的順序排列 5 lst.sort(reverse=True) # 按從大到小的順序排列 6 lst.reverse() #翻轉 7 print(lst) 8 print(len(lst)) #列表長度
三. 列表的嵌套
采?降維操作.?層?層的看就好.
lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,[‘xujiayin‘,‘王尼瑪‘,[‘樸槿惠‘,‘奧巴馬‘,‘特朗普‘],‘普金‘],‘雷軍‘,‘劉強東‘] #查詢樸槿惠 print(lst[3][2][0]) #找到特朗普和奧巴馬 print(lst[3][2][1:]) #將xujiayin首字母大寫在放進去 lst[3][0] = lst[3][0].capitalize() print(lst) #把特朗普換成特步鋪 lst[3][2][2] = "特步鋪" print(lst) #將麻給成馬 lst[0] = lst[0].replace("麻","馬") print(lst) #將特朗普給成傻逼 lst[3][2][2] = lst[3][2][2].replace("鋪","傻逼") print(lst) lst[3][2].append("金正恩") print(lst) 結果 樸槿惠 [‘奧巴馬‘, ‘特朗普‘] [‘麻花騰‘, ‘馬雲‘, ‘王健林‘, [‘Xujiayin‘, ‘王尼瑪‘, [‘樸槿惠‘, ‘奧巴馬‘, ‘特朗普‘], ‘普金‘], ‘雷軍‘, ‘劉強東‘] [‘麻花騰‘, ‘馬雲‘, ‘王健林‘, [‘Xujiayin‘, ‘王尼瑪‘, [‘樸槿惠‘, ‘奧巴馬‘, ‘特步鋪‘], ‘普金‘], ‘雷軍‘, ‘劉強東‘] [‘馬花騰‘, ‘馬雲‘, ‘王健林‘, [‘Xujiayin‘, ‘王尼瑪‘, [‘樸槿惠‘, ‘奧巴馬‘, ‘特步鋪‘], ‘普金‘], ‘雷軍‘, ‘劉強東‘] [‘馬花騰‘, ‘馬雲‘, ‘王健林‘, [‘Xujiayin‘, ‘王尼瑪‘, [‘樸槿惠‘, ‘奧巴馬‘, ‘特步傻逼‘], ‘普金‘], ‘雷軍‘, ‘劉強東‘] [‘馬花騰‘, ‘馬雲‘, ‘王健林‘, [‘Xujiayin‘, ‘王尼瑪‘, [‘樸槿惠‘, ‘奧巴馬‘, ‘特步傻逼‘, ‘金正恩‘], ‘普金‘], ‘雷軍‘, ‘劉強東‘]
四. 元組和元組嵌套
元組: 俗稱不可變的列表.?被成為只讀列表, 元組也是python的基本數據類型之?, ??括 號括起來, ??可以放任何數據類型的數據, 查詢可以. 循環也可以. 切片也可以. 但就是不能 改.
tu = (‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘) print(tu) print(tu[0]) print(tu[4]) print(tu[2:5]) #切片之後還是元組 # for循環打印元組 for el in tu: print(el) # 嘗試修改元組 # tu[0] = "馬化騰" # print(tu) #TypeError: ‘tuple‘ object does not support item assignment # 報錯 元組不能修改 # tu[1] = ["你"] # 這樣改也不行 # print(tu) # tu[0].append("馬化騰") #不能修改 # print(tu) 結果 (‘麻花騰‘, ‘馬雲‘, ‘王健林‘, ‘許家印‘, ‘雷軍‘, ‘劉強東‘) 麻花騰 雷軍 (‘王健林‘, ‘許家印‘, ‘雷軍‘) 麻花騰 馬雲 王健林 許家印 雷軍 劉強東
關於不可變, 註意: 這?元組的不可變的意思是?元素不可變. ??元素內部的?元素是可 以變, 這取決於?元素是否是可變對象.
元組中如果只有?個元素. ?定要添加?個逗號, 否則就不是元組 例如: tu = (5,) 空元組 tu = tuper()
元組也有count(), index(), len()等?法.
五. range
1 lst = [‘麻花騰‘,‘馬雲‘,‘王健林‘,‘許家印‘,‘雷軍‘,‘劉強東‘] 2 # 獲取列表索引,拿到索引之後,可以拿到元素 3 for el in range(len(lst)): 4 print(el) 5 print(lst[el]) 6 7 結果 8 0 9 麻花騰 10 1 11 馬雲 12 2 13 王健林 14 3 15 許家印 16 4 17 雷軍 18 5 19 劉強東
列表及元組