1.列表的定義python
定義: 能裝對象的對象app
在python中使用 []來描述列表, 內部元素用逗號隔開. 對數據類型沒有要求動畫
lst = ["光頭強", 1, True, {}, (1, ), {123}, ["周杰倫",[], "周杰", "結論"]] print(lst)
列表存在索引和切片. 和字符串是同樣的.spa
lst = ["天龍八部", "西遊記", "紅樓夢", "銀平煤", "綠平煤"] print(lst[3]) print(lst[-3]) print(lst) print(lst[1:4]) # 切片,原來是什麼類型. 獲得的就是什麼類型 print(lst[-1::-2]) # 倒着切
2.相關的"增刪改查"操做 (這裏重點!!!敲黑板!!!!!)code
添加:對象
①append() 追加, 在後面添加blog
② insert(位置,元素) 插入指定元素, 按照索引添加排序
③expend 迭代添加, 把傳遞進去的參數進行迭代,把每一項添加到列表的末尾索引
lst = ["凡人修仙傳", "誅仙", "神墓"] # 添加 append() 追加. 在後面添加 lst.append("看見") lst.append("追風箏的人") # 插入 insert(位置, 元素), 效率相對比較低 lst.insert(1, "琴帝") # 迭代添加, 把傳遞進去的參數進行迭代. 把每一項添加到列表的末尾 lst.extend(["胡辣湯","豬蹄子", "豬頭肉", "五花肉"]) print(lst)
刪除:rem
①pop(索引) 根據索引刪除, 默認從後往前刪
②remove(元素) 根據元素刪除, 當元素不存在時就會報錯
③del 例:del lst[::2] 用切片或者索引刪除,不經常使用!!!
④clear 例: lst:clear 清空!
修改:
索引修改
lst[索引] = 元素
lst = ["蘇秦", "武大", "武二", "寶元", "李誕", "池子", "王建國"] lst[3] = "松江" # 經過索引修改 index out of range 索引下標越界# # print(lst) lst[1:3] = ["麻花藤"] # 迭代更新(不經常使用) print(lst) lst[1:5:2] = ["麻花藤", "碼雲"] # 坑: 若是步長不是1. 元素的個數必需要和切片的個數一致 print(lst)
查詢:
for循環
lst = ["jay", "wlh", "lzw", "wf"] for item in lst: # item是lst中的每一項 print(item) for i in 123: # 'int' object is not iterable print(i)
3.列表的嵌套
多個列表互相嵌套.
lst = [["張藝謀", "馮小剛", "陳凱歌"], ["李安", "王家衛", "王晶"], ["周杰倫",["abc", "alex_wusir", ["胡辣湯", "c"]], "風扇哥"]] print(lst[1][1][2]) # 把王晶換成"賈樟柯" lst[1][2] = "賈樟柯" print(lst) # 降維操做 ["哈哈", "hehe", "houhou"] 一維 [[1,2,3], [12,4,5], [6,7,8]] 二維 # 數數 lst[2][1][1] = lst[2][1][1].replace("_", "$") print(lst)
4.列表的其餘操做
①count() 計數
lst = ["太白", "太白", "太黑", "日天", "女神", "alex", "太白"] print(lst.count("太白")) # 查看xxx元素出現的次數
②sort() 排序 reverse = True
lst = [1, 8,12,22,1,1,2,33,4,5] lst.sort() # 排序. 默認升序 lst.sort(reverse=True) # reverse 反向, 降序 print(lst)
③reverse() 翻轉
lst = ["赤木", "櫻木花道", "流川楓", "三井"] lst.reverse() # 把列表翻轉 print(lst)
④len() 求長度
lst= [1,2,3,4,5,"胡辣湯"] print(len(lst)) # 查看列表中元素的個數 list # 按住ctrl +鼠標左鍵
5. 元組
能裝對象的對象. 不可變, 一旦確認好, 不可更改.
只讀列表
能夠迭代
# 元組用()表示, 只讀列表. 馮提莫 # tu = ("DNF", "LOL", "王者榮耀", "QQ飛車", "炫舞", {}, tuple(), []) # print(tu) # # tu[1] = "呵呵" # 'tuple' object does not support item assignment # print(tu) # 元組也有索引和切片 # print(tu[3:5]) # print(tu[3:7:2]) # 元組有坑 # 空元祖 # tu = tuple() # 固定寫法 # 元組中若是隻有一個元素 # tu = (1) # 不是元組 <class 'int'> # tu = (1, ) # 這個是元組 <class 'tuple'> # print(type(tu)) # 好習慣: 寫元組的時候末尾加個逗號 # tu = ("鍋包肉", "酸菜燉粉條+五花肉", "紅燒鯉魚", "紅燒肉") # # 元組也是可迭代的 # for item in tu: # 能夠使用for循環 # print(item) tu = (1, "哈哈", "胡辣湯", ["忍者", "神龜"]) # tu[1] = "呵呵" # 元組不可變 tu[3] = ["我是新列表"] # 改變了指向. 報錯 tu[3].append("孫悟空") # 元組沒改. 該的是元素內部 沒有改變元組的指向. 不報錯 print(tu)
6.元組的嵌套
和列表同樣. 均可以互相嵌套
元組的不可變: 指向不變
7. range( 重點,難點 )
數數
range(n) [0, n)
range(m,n) [m, n)
range(m,n,p) [m, n) 每隔p取一個
重點!!!!!!!!!!!!!!!!!!!!!
for i in range(len(lst)): i 索引 lst[i] 元素
參考:
# i = 1 # while i <=100: # print(i) # i += 1 # range(參數) [0,參數) # for i in range(20): # range()能夠被迭代 0-9 # print(i) # range(參數1, 參數2) [參數1, 參數2) 切片 # for i in range(10, 20): # print(i) # range(參數1, 參數2, 參數3) [參數1, 參數2) 每隔參數3個位置取一個 # for i in range(10, 20, 3): # print(i) # lst = ["周杰倫", "動畫城", "大風車", "隨便加", "寶寶", "孟孟", "萌萌", "孟萌"] # for item in lst: # 只能拿到元素. 獲取不到索引 # print(item) # for i in range(len(lst)): # i就是索引 lst[i]元素 # print(i, lst[i])
思考題.
有以下列表
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
循環打印列表中的每一個元素,遇到列表則再循環打印出它⾥⾯的元素。
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] for i in li: if type(i) == list: for a in i: if type(a) == str: print(a.lower()) continue print(a) elif type(i) == str: print(i.lower()) else: print(i)