python內(nèi)置數(shù)據(jù)類型之列表操作
數(shù)據(jù)類型是一種值的集合以及定義在這種值上的一組操作。一切語(yǔ)言的基礎(chǔ)都是數(shù)據(jù)結(jié)構(gòu),所以打好基礎(chǔ)對(duì)于后面的學(xué)習(xí)會(huì)有百利而無(wú)一害的作用。
python內(nèi)置的常用數(shù)據(jù)類型有:數(shù)字、字符串、Bytes、列表、元組、字典、集合、布爾等
1.什么是列表
lst[#] 通過下標(biāo)訪問,從0開始。
ps:如果#超過下標(biāo)的范圍時(shí)候會(huì)出現(xiàn)IndexError的錯(cuò)誤。
如果#為負(fù)號(hào),則索引從右邊開始,#無(wú)論為正負(fù)均有范圍,超過范圍會(huì)報(bào)錯(cuò)。
lst = list(range(0,9)) #生產(chǎn)列表
l1 = lst[3] #通過正索引訪問元素
l2 = lst[-1] #通過負(fù)索引訪問元素
print(l1)
print(l2)
#說(shuō)明,如果正負(fù)索引超界,則會(huì)報(bào)錯(cuò)。
#錯(cuò)誤代碼:IndexError: list index out of range
2 .列表元素查找
查找元素:L.index( value,[start[stop]])
方法:返回查找到的第一個(gè)value值的索引。
start表示從第幾個(gè)索引開始,stop表示到哪個(gè)索引結(jié)束,均可省略。
b.但是如果出現(xiàn)stop,其前必須有start值,索引時(shí)包含start位置不包含stop位置。
c.如果匹配不到元素,則返回:ValueError: xx is not in list
d.index查找元素的時(shí)間復(fù)雜的為O(n)
lst = list(range(11,19)) print(lst) [11, 12, 13, 14, 15, 16, 17, 18] lst.index(13) #13的索引值為2
統(tǒng)計(jì)元素:L.count(value) 統(tǒng)計(jì)列表中出現(xiàn)多少個(gè)value值。
len(L),求list列表的長(zhǎng)度。
count方法的時(shí)間復(fù)雜的為O(n)
3 .列表元素操作
a.修改元素
直接賦值,L[#]=value。
#為列表的索引值
索引不能越界,會(huì)報(bào)錯(cuò)IndexError: list assignment index out of range
修改列表自身
lst = list(range(1,10)) lst[2]=111 lst[4]=123 lst [1, 2, 111, 4, 123, 6, 7, 8, 9]
b.增加元素
L.append(#),修改L本身,并且追加在列表末尾。
L.extend([#1,#2,#3]) , 將可迭代對(duì)象擴(kuò)展到列表末尾。
L+[‘a(chǎn)','b','c'] ,不修改列表本身,返回一個(gè)新的列表。
c.插入元素
L.insert(idx,#),將在該idx前插入#,會(huì)修改L本身。
當(dāng)idx為正數(shù),且大于列表本身的索引數(shù),
會(huì)實(shí)現(xiàn)append方法將插入在元素最末尾;當(dāng)idx為負(fù)數(shù),且小于-len(L)+1時(shí)將會(huì)插入到列表最前。
append的時(shí)間復(fù)雜度是O(1),效率和數(shù)據(jù)的規(guī)模無(wú)關(guān)。
insert的時(shí)間復(fù)雜度是O(n),效率個(gè)數(shù)據(jù)規(guī)模正相關(guān)。
d.移除元素
L.remove(value),修改自身,從左到右刪除第一個(gè)匹配到的值。
L.pop(idx),返回并刪除索引指向的值。如果不指定idx,將刪除列表最后的元素。
pop不指定值時(shí),時(shí)間復(fù)雜度是O(1)的;
pop指定idx時(shí),時(shí)間復(fù)雜度是O(n)的。
L.clear(),刪除索引元素。慎用,會(huì)引起垃圾回收。
e.列表反轉(zhuǎn)
reverse(),修改自身,反轉(zhuǎn)列表元素。
f.列表排序
L.sort(),排序操作,修改自身,升序排列。 L.sort(reverse=True),逆序排列。
4 .列表進(jìn)階
1. 列表復(fù)制
copy()方法,列表淺拷貝。遇到引用類型,僅僅復(fù)制引用地址。當(dāng)原來(lái)引用類型的值發(fā)生變化時(shí),拷貝后的列表的值也隨之發(fā)生變化。
lst = list(range(4)) lst1 = lst.copy() print(lst1) #淺拷貝特性說(shuō)明 lst = [1,[2,3,4],5] lst1 = lst.copy() lst1[1][2] = 11 lst[1][0]=22 print(lst) print(lst1) #lst = lst1,引用內(nèi)的值改變,列表均發(fā)生變化。 [0, 1, 2, 3] [1, [22, 3, 11], 5] [1, [22, 3, 11], 5]
copy模塊下的deepcopy() 提供了深拷貝方法。
import copy lst = [1,[2,3,4],5] lst1 = copy.deepcopy(lst) lst1[1][2] = 11 print(lst) print(lst1) #lst != lst1 對(duì)比lst.copy方法。 [1, [2, 3, 4], 5] [1, [2, 3, 11], 5]
2. 打亂列表
需要引入random模塊
# random.shuffle(list) lst = [1,323,4,-3,[1,3],None,(1,34),{1:3}] random.shuffle(lst) #修改自身,返回值為None,不能使用其他空間接受。 lst #通過shuffle打亂后列表的順序發(fā)生變化。 [323, {1: 3}, None, [1, 3], 1, -3, 4, (1, 34)]
random模塊的其他對(duì)象:
import random print(random.randint(1,11)) #返回[1,11] 之間的整數(shù),注意左右閉區(qū)間 print(random.choice(range(11))) #從非空序列中隨機(jī)挑選一個(gè)整數(shù) #randrange ([start,] stop [,step]) 從指定的范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù) random.randrange(1,7,2) #從[1,7)中,步長(zhǎng)為2的數(shù)字中獲取一個(gè)數(shù)
總結(jié)
以上所述是小編給大家介紹的python內(nèi)置數(shù)據(jù)類型之列表,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
在python image 中實(shí)現(xiàn)安裝中文字體
這篇文章主要介紹了在python image 中實(shí)現(xiàn)安裝中文字體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-05-05Python3.10耙梳加密算法Encryption種類及開發(fā)場(chǎng)景
這篇文章主要為大家介紹了Python3.10加密,各種加密,耙梳加密算法Encryption種類及開發(fā)場(chǎng)景運(yùn)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02python?PyQt5中QButtonGroup的詳細(xì)用法解析與應(yīng)用實(shí)戰(zhàn)記錄
在PyQt5中,QButtonGroup是一個(gè)用于管理按鈕互斥性和信號(hào)槽連接的類,它可以將多個(gè)按鈕劃分為一個(gè)組,管理按鈕的選中狀態(tài)和ID,本文詳細(xì)介紹了QButtonGroup的創(chuàng)建、使用方法和實(shí)際應(yīng)用案例,適合需要在PyQt5項(xiàng)目中高效管理按鈕組的開發(fā)者2024-10-10Python實(shí)現(xiàn)循環(huán)語(yǔ)句的方式分享
這篇文章主要為大家詳細(xì)介紹了Python中實(shí)現(xiàn)循環(huán)語(yǔ)句的常用方式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-05-05關(guān)于Pycharm安裝第三方庫(kù)超時(shí) Read time-out的問題
這篇文章主要介紹了關(guān)于Pycharm安裝第三方庫(kù)超時(shí) Read time-out的問題, 找了幾個(gè)命令都不是很好用,最后找到解決的步驟,感興趣的朋友跟隨小編一起看看吧2021-10-10PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說(shuō)明
這篇文章主要為大家介紹了PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04