python-列表和元組
阿新 • • 發佈:2021-01-21
#列表的相關操作,列表是可變的可迭代物件 # index(value,[start,[stop]])通過值value,從指定區間查詢,匹配第一個就立即返回索引,找不到,丟擲ValueError lst = ['a',1,2,3,4,'a','b','c'] lst[1]='b' print(lst) print(lst.index('a',3)) # count(value) 返回列表中的value的個數 lst.count('a') # len(list) 返回列表的長度 print(len(lst)) # append(object) ->None 會修改原列表 lst.append('e') lst.append([1,2]) # insert(index, object) -> None會修改原列表.索引超出,會在尾部/頭部追加 lst.insert(1,55) # extend(iteratable) -> None 將iteratable的元素追加進來 lst.append([1,2]) # + -> list 連線兩個列表,產生新的列表,原列表不變 # * -> list 將列表元素重複 # remove(value) -> None,從左到右查詢第一個匹配的值,移除該元素。找不到ValueError lst.remove(55) # pop([index]) -> item 不指定索引,從尾部彈出,返回彈出的值。指定索引,就彈出指定元素,索引超界IndexErrorlst.pop(1) #reversed() -> None 就地修改,反轉列表 reversed(lst) # sort(key=None, reverse=False) -> None 就地排序 ,如果沒有定義排序規則key,則只能同類型排序,比如包含了字串和數字,就排不了 lst1= [1,2,3] lst1.sort() # clear() -> None lst.clear() # 列表複製 lst1 = [1, [2, 3, 4], 5] lst2 = lst1.copy() print(lst1 == lst2) #true lst2[2] = 10 print(lst1 == lst2) # false lst2[2] = 5 # 把lst2的第三個元素改成和lst1的第三個元素一樣 lst2[1][1] = 20 # 僅僅改了lst2 ,他們會一樣嗎? print(lst1 == lst2) # Ture # 總結,遇到引用型別,則只複製了引用。兩個列表的第二個元素都是指向這個引用[2, 3, 4],所以會同時改。 # 與之對應的是深拷貝 import copy lst0 = [1, [2, 3, 4], 5] lst5 = copy.deepcopy(lst0) lst5[1][1] = 20 print(lst5 == lst0) # false # 元組只讀,只有查詢的相關操作,沒有增刪改 t = (1,2,3) t1 = (1,) #只包含一個元素時候,要帶個逗號 print(t.index(1)) # count(value) 返回列表中的value的個數 t.count(2) # len(list) 返回列表的長度 print(len(t))
['a', 'b', 2, 3, 4, 'a', 'b', 'c'] 5 8 True False True False 0 3