您好,登錄后才能下訂單哦!
本篇內容介紹了“python列表知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
列表是最常用的Python數據類型,列表是可變對象,可以存放0至多個元素(即列表的成員,也是對象)。列表是一個有序的序列,序列中的每個元素都分配一個索引,第一個索引是0,第二個索引是1,依此類推。列表的元素可以插入、增加、刪除、修改。常見的操作有索引,切片,加,乘,檢查成員等。python已經內置確定列表長度以及確定列表元素最大值、最小值的方法。
空列表,一對圓括號。
t=[] print(type(t)) out: <class 'list'>
1個元素的列表,用方括號將這個元素包圍。
t = [1] print(type(t)) out: <class 'list'>
多個元素的列表,用方括號將多個元素包圍,同時元素之間用逗號隔開。
t=[1,2,3] print(type(t)) out: <class 'list'>
其他類型轉換成列表。
tuple1 = (1, 2, 3) set1 = {1, 2, 3} dict1 = {1: 'a', 2: 'b', 3: 'c'} list1 = list(tuple1) list2 = list(set1) list3 = list(dict1) print(list1, type(list1)) print(list2, type(list2)) print(list3, type(list3)) out: [1, 2, 3] <class 'list'> [1, 2, 3] <class 'list'> [1, 2, 3] <class 'list'>
列表推導式。
list1 = [i for i in range(10)] list2 = [i for i in range(10) if i % 2 == 0] list3 = [i + j * 2 for i in range(3) for j in range(3)] list4 = [ (i, j, k) for i in range(1,3) for j in range(1,3) for k in range(1,3) if i == j ] print(list1, type(list1)) print(list2, type(list2)) print(list3, type(list3)) print(list4, type(list4)) out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'> [0, 2, 4, 6, 8] <class 'list'> [0, 2, 4, 1, 3, 5, 2, 4, 6] <class 'list'> [(1, 1, 1), (1, 1, 2), (2, 2, 1), (2, 2, 2)] <class 'list'>
列表是可變對象,可以在隊尾增加元素,效率極高。也可以插入元素,但插入效率很低,因為插入時會產生大量移動操作,除非必要,否則不建議插入元素。
list1 = [1, 2, 3] print(list1, id(list1)) list1.append(4) print(list1, id(list1)) list1.extend([5,6]) list1.insert(0,0.5) list1.insert(3,2.5) print(list1, id(list1)) out: [1, 2, 3] 2984233256832 [1, 2, 3, 4] 2984233256832 [0.5, 1, 2, 2.5, 3, 4, 5, 6] 2984233256832
列表有+和*運算,但是不建議這樣用,因為*運算實際是新建列表,效率低;+運算雖不是新建列表,但運行速度明顯低于c代碼的內置append方法,添加元素強烈建議使用append和extend。
list1 = [1, 2, 3] print(list1, id(list1)) list1 += (4,) print(list1, id(list1)) list1 = list1 * 2 print(list1, id(list1)) out: [1, 2, 3] 1367941064832 [1, 2, 3, 4] 1367941064832 [1, 2, 3, 4, 1, 2, 3, 4] 1367941065472
del:根據索引值刪除元素,也可以直接刪除列表本身。
list1 = [i for i in range(5)] del list1[0] print(list1) del list1 out: [1, 2, 3, 4]
pop():根據索引值刪除元素,不指定索引則刪除隊尾元素。pop方法有返回值。
list1 = [i for i in range(5)] print(list1.pop(),list1) print(list1.pop(0),list1) out: 4 [0, 1, 2, 3] 0 [1, 2, 3]
remove():根據元素值進行刪除,在不確定索引只確定值的情況下用這個方法。需要注意的是,remove方法只刪除第一個匹配的元素。若列表中不存在該值會引發 ValueError 錯誤。
list1 = [i for i in range(3)]*2 print(list1) list1.remove(2) print(list1) # list1.remove(3) ValueError: list.remove(x): x not in list out: [0, 1, 2, 0, 1, 2] [0, 1, 0, 1, 2]
clear():清空列表內容,保留列表本身,在循環體中需要清空列表時優先用這個方法,而不要新建列表,因為新建的開銷相對較大。
list1 = [i for i in range(5)] list1.clear() print(list1) out: []
列表是可變對象,可以通過下標、切片方法確認修改范圍來修改列表的內容。
list1 = [i for i in range(5)] list1[0] = 'a' list1[1:3] = 'bc' print(list1) out: ['a', 'b', 'c', 3, 4]
列表的查詢是in 運算。
list1 = [i for i in range(5)] print(5 in list1) print(5 not in list1) print(1 in list1) out: False True True
列表的內置方法比元組多了不少,除了上面說過的append、extend、instert、remove、pop、clear,還有一些序列通用方法len、index、count、copy,列表專屬方法sort、reverse。
len,返回列表的元素長度
index,查詢列表中某元素出現的位置
count,統計列表中某元素出現的次數
copy,建立列表的副本,內容一致,id不同。(注意:嵌套結構要用deepcopy)
以下是案例
list1 = ['今日', '頭條', '關于', '列表', '列表', 1, 1] print(list1.index('列表')) print(list1.count(1)) print(len(list1)) list2 = list1 list3 = list1.copy print(id(list1),id(list2),id(list3)) list2 = list1 # 直接等于復制過來的是相同的id list3 = list1.copy # copy復制過來的內容相同,但id不同 print(id(list1),id(list2),id(list3)) out: 3 2 7 2270698482048 2270698482048 2270698383456
sort,將列表元素排序,語法示范,list.sort( key=None, reverse=False),key可指定索引方法(lambda表達式或自定義方法),reverse指定是否倒序排列。sort直接改動原列表順序。
sorted,和sort基本類似,但不改動原列表順序,而是返回新列表,要另外定義變量接收排序結果。
reverse,將列表元素按索引倒置排列,reverse直接改動原列表的順序。
使用切片方法list[::-1],也可將列表元素按索引倒序排列,但不改動原列表順序,要另外定義變量接收排序結果。
list1 = [3, 5, 6, 1, 2, 4] list1.sort() print(list1) out: [1, 2, 3, 4, 5, 6]
list1 = [3, 5, 6, 1, 2, 4] list2 = sorted(list1) print(list1) print(list2) out: [3, 5, 6, 1, 2, 4] [1, 2, 3, 4, 5, 6]
list1 = [3, 5, 6, 1, 2, 4] list1.reverse() print(list1) out: [4, 2, 1, 6, 5, 3]
解包,用_接收不需要的元素,加*表示這個變量是列表,可以接收多個元素,不加則只能接收一個元素。
t = ['今日', '頭條', '關于', '列表', '列表', 1, 1] # 獲取列表t的前2個元素 a, b, *_ = t print(_, type(_)) print(a, b) # 獲取列表t的最后2個元素 *_, num1, num2 = t print(num1, num2) # 獲取列表t的倒數第3個元素 *_, ts, _, _ = t print(ts) out: ['關于', '列表', '列表', 1, 1] <class 'list'> 今日 頭條 1 1 列表
切片,切片謹記2點,一是索引從0開始,二是左開右閉:
t = ['今日', '頭條', '關于', '列表', '列表', 1, 1] # 打印列表t的前2個元素 print(t[:2]) # 倒序打印列表t print(t[::-1]) # 打印列表的第4、和第5個元素。 print(t[3:5]) out: ['今日', '頭條'] [1, 1, '列表', '列表', '關于', '頭條', '今日'] ['列表', '列表']
t = [(1, 2, 3), (4, 5, 6), (7, 8, 9), [10, 11, 12]] # 打印6 print(t[1][2]) # 將10改成666,再打印出來 t[3][0] = 666 print(t[3][0]) out: 6 666
“python列表知識點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。