1. 列表 1.1 列表的介紹 列表是python的基礎數據類型之⼀,其他編程語⾔也有類似的數據類型。比如JS中的數組, java中的數組等等。它是以[ ]括起來,每個元素⽤','隔開⽽且可以存放各種數據類型: lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫" ...
1. 列表
1.1 列表的介紹
列表是python的基礎數據類型之⼀,其他編程語⾔也有類似的數據類型。比如JS中的數組, java中的數組等等。它是以[ ]括起來,每個元素⽤','隔開⽽且可以存放各種數據類型:
lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "組"), "abc", {"我 叫":"dict字典"},{"我叫集合","集合"}]
列表相比於字元串,不僅可以存放不同的數據類型,⽽且可以存放⼤量的數據。32位python可以存放: 536870912個元素, 64位可以存放: 1152921504606846975個元素,⽽且列表是有序的(按照你保存的順序),有索引,可以切⽚⽅便取值。
1.2 列表的索引和切片
列表和字元串⼀樣也擁有索引:
lst = ["麻花藤", "王劍林", "⻢芸", "周鴻醫", "向華強"] print(lst[0]) # 獲取第⼀個元素 print(lst[1]) print(lst[2]) lst[3] = "流動強" # 註意. 列表是可以發⽣改變的. 這⾥和字元串不⼀樣 print(lst) # ['麻花藤', '王劍林', '⻢芸', '流動強', '向華強'] s0 = "向華強" s0[1] = "美" # TypeError: 'str' object does not support item assignment 不允許改變 print(s0)
列表的切片:
lst = ["麻花藤", "王劍林", "⻢芸", "周鴻醫", "向華強"] print(lst[0:3]) # ['麻花藤', '王劍林', '⻢芸'] print(lst[:3]) # ['麻花藤', '王劍林', '⻢芸'] print(lst[1::2]) # ['王劍林', '周鴻醫'] 也有步⻓ print(lst[2::-1]) # ['⻢芸', '王劍林', '麻花藤'] 也可以倒著取 print(lst[-1:-3:-2]) # 倒著帶步⻓
1.3 列表的增刪改查
1.3.1 添加
註意,list和str是不⼀樣的。list可以發⽣改變,所以直接就在原來的對象上進⾏了操作
lst = ["麻花藤", "林俊傑", "周潤發", "周芷若"] print(lst) lst.append("wusir") print(lst)
lst = [] while True: content = input("請輸⼊你要錄⼊的員⼯信息, 輸⼊Q退出:") if content.upper() == 'Q': break lst.append(content) print(lst)
lst = ["麻花藤", "張德忠", "孔德福"] lst.insert(1, "劉德華") # 在1的位置插⼊劉德華. 原來的元素向後移動⼀位 print(lst)
# 迭代添加 lst = ["王志⽂", "張⼀⼭", "苦海⽆涯"] lst.extend(["麻花藤", "麻花不疼"]) print(lst)
1.3.2 刪除
pop, remove, clear, del
lst = ["麻花藤", "王劍林", "李嘉誠", "王富貴"] print(lst) deleted = lst.pop() # 刪除最後⼀個 print("被刪除的", deleted) print(lst)
el = lst.pop(2) # 刪除2號元素 print(el) print(lst)
lst.remove("麻花藤") # 刪除指定元素 print(lst) # lst.remove("哈哈") # 刪除不存在的元素會報錯 # # print(lst)
lst.clear() # 清空list print(lst)
# 切⽚刪除 del lst[1:3] print(lst)
1.3.3 修改
索引切片修改
# 修改 lst = ["太⽩", "太⿊", "五⾊", "銀王", "⽇天"] lst[1] = "太污" # 把1號元素修改成太污 print(lst)
lst[1:4:3] = ["麻花藤", "哇靠"] # 切⽚修改也OK. 如果步⻓不是1, 要註意. 元素的個 數 print(lst)
lst[1:4] = ["李嘉誠個⻳⼉⼦"] # 如果切⽚沒有步⻓或者步⻓是1. 則不⽤關⼼個數 print(lst)
1.3.4 查詢
列表是一個可迭代對象,所以可以進行for迴圈
for el in lst: print(el)
1.3.5 其他操作
lst = ["太⽩", "太⿊", "五⾊", "銀王", "⽇天", "太⽩"] c = lst.count("太⽩") # 查詢太⽩出現的次數 print(c)
lst = [1, 11, 22, 2] lst.sort() # 排序. 預設升序 print(lst) lst.sort(reverse=True) # 降序 print(lst)
lst = ["太⽩", "太⿊", "五⾊", "銀王", "⽇天", "太⽩"] print(lst) lst.reverse() print(lst)
l = len(lst) # 列表的⻓度 print(l)
1.4 列表的嵌套
採⽤降維操作,⼀層⼀層的看就好。
lst = [1, "太⽩", "wusir", ["⻢⻁疼", ["可⼝可樂"], "王劍林"]]
# 找到wusir print(lst[2])
# 找到太⽩和wusir print(lst[1:3])
# 找到太⽩的⽩字 print(lst[1][1])
# 將wusir拿到. 然後⾸字⺟⼤寫. 再扔回去 s = lst[2] s = s.capitalize() lst[2] = s print(lst) # 簡寫 lst[2] = lst[2].capitalize() print(lst)
# 把太⽩換成太⿊ lst[1] = lst[1].replace("⽩", "⿊") print(lst)
# 把⻢⻁疼換成⻢化疼 lst[3][0] = lst[3][0].replace("⻁", "化") print(lst[3][0])
lst[3][1].append("雪碧") print(lst)
2. 元組
元組: 俗稱不可變的列表,⼜被成為只讀列表。元組也是python的基本數據類型之⼀,⽤⼩括弧括起來,⾥⾯可以放任何數據類型的數據,查詢可以,迴圈也可以,切片也可以,但就是不能改。
tu = (1, "太⽩", "李⽩", "太⿊", "怎麼⿊") print(tu)
print(tu[0]) print(tu[2]) print(tu[2:5]) # 切⽚之後還是元組
# for迴圈遍歷元組 for el in tu: print(el)
# 嘗試修改元組 # tu[1] = "⻢⻁疼" # 報錯 'tuple' object does not support item assignment
tu = (1, "哈哈", [], "呵呵") # tu[2] = ["fdsaf"] # 這麼改不⾏
tu[2].append("麻花藤") # 可以改了. 沒報錯 tu[2].append("王劍林") print(tu)
關於不可變,註意: 這⾥元組的不可變的意思是⼦元素不可變,⽽⼦元素內部的⼦元素是可 以變,這取決於⼦元素是否是可變對象。元組中如果只有⼀個元素,⼀定要添加⼀個逗號,否則就不是元組。
tu = (1,) print(type(tu))
元組也有count(), index(), len()等⽅法. 可以⾃⼰測試使⽤。
3. range
range可以幫我們獲取到⼀組數據,通過for迴圈能夠獲取到這些數據。
for num in range(10): print(num) for num in range(1, 10, 2): print(num) for num in range(10, 1, -2): # 反著來, 和切⽚⼀樣 print(num)