Python(列表,元組)
一.列表
列表初識
- 列表是python的基礎數據類型之一,其他編程語言也有類似的數據類型.
比如JS中的數組, java中的數組等等,它是以[ ]括起來, 每個元素用","隔開并且可以存放各種數據類型. - 列表相比于字符串,不僅可以存放不同的數據類型,并且可以存放大量的數據.
當32位Python可以存放:536870912個元素, 當64位Python可以存放:1152921504606846975個元素,并且列表是按照你保存的順序進行排序的,有索引并且可以切片,方便取值.
- 列表是python的基礎數據類型之一,其他編程語言也有類似的數據類型.
列表索引,切片和操作
1.1 列表的索引
? 列表與字符串一樣也有索引:
# 列表索引的應用 lst = ["asd", "你好", "hell world", 123, "升仙"] print(lst[0]) # 獲取第一個元素 print(lst[1]) # 獲取第二個元素 print(lst[2]) # 獲取第三個元素 print(lst[3]) # 獲取第四個元素 print(lst[4]) # 獲取第五個元素 # 列表是可變的與字符串不同這點要注意,在列表的操作中會有說明.
1.2 列表的切片
? 列表與字符串一樣可進行切片操作
lst = ["asd","你好","hell world",123,"升仙"] print(lst[0:3]) # ["asd","你好","hell world"] print(lst[:3]) # ["asd","你好","hell world"] print(lst[1::2]) # ["你好",123] 列表同樣有步長 print(lst[2::-1]) # ["hell world","你好","asd"] 步長位置的正負控制著取值的方向 print(lst[-1:-4:-2]) # ["升仙","hell world"] # 列表和字符串的操作基本類似,因此操作起來并不難舉一反三即可.
1.3 列表的操作(增,刪,改,查,其他操作)
注意 : list和str不一樣, lst可以發生改變.,所以可以直接在原來list對象上進行操作.
? 1.3.1 列表的增加
# 在列表后新增 lst = ["asd","你好","hell world",123,"升仙"] print(lst) lst.append("wusir") print(lst) # ["asd","你好","hell world",123,"升仙","wusir"] --------------------------------- # 根據索引位置插入 lst = ["asd","你好","hell world",123,"升仙"] lst.insert(1,"成仙") # 在索引為1的位置插入劉德華,原來的元素向后移動一位. print(lst) # ["asd","成仙","你好","hell world",123,"升仙"] --------------------------------- # 迭代添加 lst = ["asd","你好","hell world",123,"升仙"] lst2 = ["升仙成功","升仙失敗"] lst.extend(lst2) print(lst) # ["asd","你好","hell world",123,"升仙","升仙成功","升仙失敗"] print(lst2) # ["升仙成功","升仙失敗"] # lst2列表添加到lst列表中,lst2本身不變.
? 1.3.2 列表的刪除
? 列表的刪除有四種方式(pop,remove,clear,del)
# pop刪除用法 lst = ["asd","你好","hell world",123,"升仙"] print(lst) el = lst.pop() # 當pop()括號內為空時,默認刪除最后一個索引所對應的的數據. print(el) # 打印結果:升仙,pop刪除列表的某一項時,會有返回值,其返回值就是被pop刪除的內容. print(lst) # ["asd","你好","hell world",123]lst = ["asd","你好","hell world",123,"升仙"] el2 = lst.pop(2) # 刪除索引為2的位置的值 print(el2) # hell world print(lst) # ["asd","你好",123,"升仙"] --------------------------------- # remove刪除用法 lst = ["asd","你好","hell world",123,"升仙"] lst.remove("升仙") # 可以刪除指定元素,當刪除不存在的元素會報錯 print(lst) # ["asd","你好","hell world",123] --------------------------------- # clear刪除用法 lst.clear() # 清空list print(lst) # [] --------------------------------- # 切片刪除 del lst[1:3] # 強制刪除 print(lst) # ["asd",123,"升仙"]
? 1.3.3 列表的修改
# 列表的修改 lst = ["asd","你好","hell world",123,"升仙"] lst[1] = "飛升" # 把1號元素修改成飛升 print(lst) # ["asd","飛升","hell world",123,"升仙"] lst[:4:2] = ["返璞歸真", "融會貫通"] # 切片修改也可以,同時注意當步長不是1時,元素的個數要一一對應額否則會報錯 print(lst) # ["返璞歸真","飛升","融會貫通",123,"升仙"] lst[1:4] = ["霸氣外露"] # 如果切片沒有步長或者步長是1時,則不用管替換的個數. print(lst) # ["返璞歸真","霸氣外露","升仙"]
? 1.3.4 列表的查詢
? 列表是一個可以迭代的對象
# 用for查詢打印列表每一個元素 lst = ["asd","你好","hell world",123,"升仙"] for el in lst:print(el) --------------------------------- # 查詢元素在列表中出現的次數 lst = ["asd","你好","hell world",123,"升仙"] c = lst.count("升仙") # 查詢升仙出現的次數 print(c) # 1 --------------------------------- # 查詢列表的長度 lst = ["asd","你好","hell world",123,"升仙"] l=len(lst) # 列表的長度,與字符串的使用方式相同 print(l) # 5
? 1.3.4 列表的其他操作
# 升序 lst = [1,2,15,23,4,33] lst.sort() # 排序,默認為升序. print(lst) # [1,2,4,15,23,33] --------------------------------- # 降序 lst.sort(reverse=True) # 降序 print(lst) # [33,23,15,4,2,1] --------------------------------- # 翻轉(倒序) lst = ["asd","你好","hell world",123,"升仙"] lst.reverse() # 此方法只針對列表內的各個元素,倒序 print(lst) # ["升仙",123,"hell world","你好","asd"]
列表嵌套
一層一層看靈活運用即可,融會貫通.
lst = ["武當","峨眉","少林",["崆峒",["極樂谷"],"華山"],"魔教"] # 找到峨眉 print(lst[2]) # 找到少林和魔教 print(lst[2:]) # 找到崆峒 print(lst[3][0]) # 將崆峒改成丐幫 lst[3][0]="丐幫" print(lst) # ['武當','峨眉','少林',['丐幫',['極樂谷'],'華山'],'魔教'] # 在lst列表后添加"丐幫" lst.append("丐幫") print(lst) # ['武當','峨眉','少林',['崆峒',['極樂谷'],'華山'],'魔教','丐幫']
二.元組
元組初識
? 元組俗稱不可變的列表,又稱為只讀列表,元組也是python的基本數據類型之一,用小括號括起來,里面可以放任何數據類型的數據,循環也可以,查詢可以,切片也可以,就是不能改.
? 注意: 這里元組的不可變的意思是當子元素是不可變對象時元素不可變,當子元素為可變對象時是可以變的, 這取決于子元素是否是為可變對象.
? 元組中如果只有一個元素,需要添加一個逗號,否則就不是一個元組,當tu=()時,print(type(tu)),打印結果顯示tu是元組.
元組嵌套
? 元組也有,len(),count(),index()等方法,可以自己嘗試直至融會貫通.
# 元組取值和切片 tup = ("asd","你好","hell world",123,"升仙") print(tup[0]) # asd print(tup[2]) # hell world print(tup[2:]) # ("hell world",123,"升仙") 切片后仍然是元組 --------------------------------- # for循環 tup = ("asd","你好","hell world",123,"升仙") for el in tup:print(el) --------------------------------- # 當元組內的子元素時可變類型時可以進行操作,將武當換成丐幫 tup = ("asd","你好","hell world",123,["武當","峨眉","少林"]) tup[-1][0]="丐幫" print(tup) # ("asd","你好","hell world",123,["丐幫","峨眉","少林"]) # 這里元組的不可變的意思是子元素不可變,而字元素內部的子元素是可以變, 這取決于子元素是否是可變對象.