python 清空所有对象_Python编程思想(7):列表的增删改操作
生活随笔
收集整理的這篇文章主要介紹了
python 清空所有对象_Python编程思想(7):列表的增删改操作
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
李寧老師已經(jīng)在「極客起源」 微信公眾號(hào)推出《Python編程思想》電子書(shū),囊括了Python的核心技術(shù),以及Python的主要函數(shù)庫(kù)的使用方法。讀者可以在「極客起源」 公眾號(hào)中輸入?160442?開(kāi)始學(xué)習(xí),或點(diǎn)擊「極客起源」公眾號(hào)下方的「編程思想」?>??「Python編程思想」?菜單開(kāi)始學(xué)習(xí)。
-----------正文-----------
在前文已經(jīng)提到,列表與元組最大的區(qū)別在于:元組是不可改變的,列表是可以改變的。元組支持的操作,列表基本上都支持;列表支持對(duì)元素的修改,而元組則不支持。從這個(gè)角度來(lái)看,可以認(rèn)為列表是增強(qiáng)版的元組。盡管大多數(shù)情況可以使用列表來(lái)代替元組,但如果程序不需要修改列表中的元素時(shí),使用元組代替列表則會(huì)更安全。1. 創(chuàng)建列表和元組在前面已經(jīng)介紹了使用方括號(hào)語(yǔ)法創(chuàng)建列表,其實(shí)Python 還提供了一個(gè)內(nèi)置的list()函數(shù)來(lái)創(chuàng)建列表,list()函數(shù)可用于將元組、區(qū)間(range)等對(duì)象轉(zhuǎn)換為列表。示例代碼:創(chuàng)建列表.pya_tuple = ('極客起源', 40, 123.5, True)# 將元組轉(zhuǎn)換成列表a_list = list(a_tuple)print(a_list) # ['極客起源', 40, 123.5, True]# 使用range()函數(shù)創(chuàng)建區(qū)間(range)對(duì)象a_range = range(1, 20)print(a_range) # range(1, 20)# 將區(qū)間轉(zhuǎn)換成列表b_list = list(a_range)# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]print(b_list)# 創(chuàng)建區(qū)間時(shí)還可以指定步長(zhǎng)c_list = list(range(4, 20, 2))print(c_list) # [4, 6, 8, 10, 12, 14, 16, 18]上面程序中使用list()函數(shù)將1個(gè)元組轉(zhuǎn)換為列表。然后又將一個(gè)區(qū)間(range) 對(duì)象轉(zhuǎn)換為列表,該行代碼轉(zhuǎn)換的區(qū)間為range(1, 20),該區(qū)間的默認(rèn)步長(zhǎng)是1,該區(qū)間共包括1到19共19個(gè)值(注意:range()函數(shù)創(chuàng)建的區(qū)間是半閉半開(kāi)的,所以不包括20)。因此程序輸出b_ _list 時(shí)將看到如下結(jié)果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]最后將range(4, 20,2)轉(zhuǎn)換為列表,該區(qū)間是從4到20 (不包括20)且步長(zhǎng)為2的數(shù)值,因此程序輸出c__list時(shí)將看到如下結(jié)果:[4, 6, 8, 10, 12, 14, 16, 18]與list()對(duì)應(yīng)的是Python 也提供了一個(gè)tuple()函數(shù),該函數(shù)可用于將列表、區(qū)間(range)等對(duì)象轉(zhuǎn)換為元組。示例代碼:創(chuàng)建元組.pya_list = ['公眾號(hào):極客起源', 120, False]# 將列表轉(zhuǎn)換成元組a_tuple = tuple(a_list)print(a_tuple) # ('公眾號(hào):極客起源', 120, False)# 使用range()函數(shù)創(chuàng)建區(qū)間(range)對(duì)象a_range = range(1, 10)print(a_range) # range(1, 10)# 將區(qū)間轉(zhuǎn)換成元組b_tuple = tuple(a_range)print(b_tuple) #(1, 2, 3, 4, 5, 6, 7, 8, 9)# 創(chuàng)建區(qū)間時(shí)還指定步長(zhǎng)c_tuple = tuple(range(4, 20, 2))print(c_tuple) # (1, 2, 3, 4, 5, 6, 7, 8, 9)2. 向列表添加元素(append)為列表添加元素可以使用列表的append()方法,該方法會(huì)把傳入的參數(shù)值追加到列表的最后。append()方法既可接收單個(gè)值,也可接收元組、列表等,但該方法只是把元組、列表當(dāng)成單個(gè)元素,這樣就會(huì)形成在列表中嵌套列表、嵌套元組的情形。示例代碼:向列表添加元素.pya_list = ['公眾號(hào):極客起源', 200, 12]# 追加元素a_list.append('輸入160442獲取《Python編程思想》')# ['公眾號(hào):極客起源', 200, 12, '輸入160442獲取《Python編程思想》']print(a_list)a_tuple = (44.3, 100)# 追加元組,元組被當(dāng)成一個(gè)元素a_list.append(a_tuple)# ['公眾號(hào):極客起源', 200, 12, '輸入160442獲取《Python編程思想》', (44.3, 100)]print(a_list)# 追加列表,列表被當(dāng)成一個(gè)元素a_list.append(['x', 'y'])# ['公眾號(hào):極客起源', 200, 12, '輸入160442獲取《Python編程思想》', (44.3, 100), ['x', 'y']]print(a_list)從上面代碼可以看出,為列表追加另一個(gè)列表時(shí),Python 會(huì)將被追加的列表當(dāng)成1個(gè)整體的元素,而不是追加目標(biāo)列表中的元素。3. 向列表添加元素(extend)在上一節(jié)講了append()方法,但這個(gè)方法只會(huì)將列表當(dāng)成一個(gè)整體的元素添加,如果希望不將被追加的列表當(dāng)成一個(gè)整體, 而只是追加列表中的元素,則可以使用列表的extend()方法。示例代碼:向列表添加元素(extend).pyb_list = ['x', 120]# 追加元組中的所有元素b_list.extend(("極客起源", "蒙娜麗寧"))print(b_list) # ['x', 120, '極客起源', '蒙娜麗寧']# 追加列表中的所有元素b_list.extend(['A', 'B', 'C'])print(b_list) # ['x', 120, '極客起源', '蒙娜麗寧', 'A', 'B', 'C']# 追加區(qū)間中的所有元素b_list.extend(range(99, 104))print(b_list) # ['x', 120, '極客起源', '蒙娜麗寧', 'A', 'B', 'C', 99, 100, 101, 102, 103]4. 向列表插入元素(insert)追加元素是指在列表最后插入元素,而如果希望在列表中間插入元素,則可以使用列表的insert()方法,使用insert()方法時(shí)要指定將元素要插入的位置。示例代碼:向列表插入元素(insert).pyc_list = list(range(1, 5))print(c_list) # [1, 2, 3, 4]# 在索引位3的位置插入一個(gè)字符串c_list.insert(3, '極客起源')print(c_list) # [1, 2, 3, '極客起源', 4]# 在索引為2處插入一個(gè)元組(將字符串轉(zhuǎn)換為元組),元組被當(dāng)成一個(gè)元素c_list.insert(2, tuple('蒙娜麗寧'))print(c_list) # [1, 2, ('蒙', '娜', '麗', '寧'), 3, '極客起源', 4]5. 刪除列表元素刪除列表元素需要使用del語(yǔ)句。del 語(yǔ)句是Python的一種語(yǔ)句,專(zhuān)門(mén)用于執(zhí)行刪除操作,不僅可用于刪除列表的元素,也可用于刪除變量等操作。使用del語(yǔ)句既可刪除列表中的單個(gè)元素,也可直接刪除列表的中間一段。示例代碼:刪除列表元素.pya_list = ['Python', 200, -12.4, (30, 12,5), 'UnityMarvel']# 刪除第3個(gè)元素del a_list[2]print(a_list) # ['Python', 200, (30, 12, 5), 'UnityMarvel']# 刪除第2個(gè)到第4個(gè)(不包含)元素del a_list[1: 3]print(a_list) # ['Python', 'UnityMarvel']b_list = list(range(1, 10))# 刪除第3個(gè)到倒數(shù)第2個(gè)(不包含)元素,間隔為2del b_list[2: -2: 2]print(b_list) # [1, 2, 4, 6, 8, 9]# 刪除第3個(gè)到第5個(gè)(不包含)元素del b_list[2: 4]print(b_list) # [1, 2, 8, 9]使用del語(yǔ)句不僅可以刪除列表元素,也可以刪除普通變量。示例代碼:name = 'UnityMarvel'print(name) # UnityMarvel# 刪除name變量del name#print(name) # 拋出異常上面的代碼刪除了name變量,因此接下來(lái)訪(fǎng)問(wèn)name變量時(shí)將會(huì)拋出異常(引發(fā)NameError錯(cuò)誤)。除使用del語(yǔ)句之外,Python 還提供了remove()方法來(lái)刪除列表元素,該方法并不是根據(jù)索引來(lái)刪除列表元素的,而是根據(jù)元素本身來(lái)執(zhí)行刪除操作的。該方法只刪除第1個(gè)找到的元素,如果找不到該元素,該方法將會(huì)拋出異常(引發(fā)ValueError錯(cuò)誤)。示例代碼:c_list = [20, 'Python', 30, -40, 'Node.js', 6.4]# 刪除第一次找到的30c_list.remove(30)print(c_list) # [20, 'Python', -40, 'Node.js', 6.4]# 刪除第一次找到的'Node.js'c_list.remove('Node.js')print(c_list) # [20, 'Python', -40, 6.4]# 清空列表c_list.clear()print(c_list) # []在這段代碼的最后,使用列表的clear方法清空了整個(gè)列表。6. 修改列表元素列表的元素相當(dāng)于變量,因此程序可以對(duì)列表的元素賦值,這樣即可修改列表的元素。私立代碼:修改列表元素.pya_list = [True, False, -3.14, 'Python', 'UnityMarvel']# 對(duì)第3個(gè)元素賦值a_list[2] = 2.71828print(a_list) # [True, False, 2.71828, 'Python', 'UnityMarvel']# 對(duì)倒數(shù)第1個(gè)元素賦值a_list[-1] = "超平臺(tái)開(kāi)發(fā)系統(tǒng)"print(a_list) # [True, False, 2.71828, 'Python', '超平臺(tái)開(kāi)發(fā)系統(tǒng)']上面代碼通過(guò)索引對(duì)列表元素賦值,程序既可使用正數(shù)索引,也可使用負(fù)數(shù)索引。此外,程序也可通過(guò)分片對(duì)列表其中一部分賦值, 在執(zhí)行這個(gè)操作時(shí)并不要求新賦值的元素個(gè)數(shù)與原來(lái)的元素個(gè)數(shù)相等。這意味著通過(guò)這種方式既可為列表增加元素,也可刪除列表中的元素。示例代碼:b_list = list(range(1, 5))print(b_list) # [1, 2, 3, 4]# 將第2個(gè)到第4個(gè)(不包含)元素賦值為新列表的元素b_list[1: 3] = ['x', 'y']print(b_list) #[1, 'x', 'y', 4]如果對(duì)列表中空的分片賦值,就變成了為列表插入元素。示例代碼:# 將第3個(gè)到第3個(gè)(不包含)元素賦值為新列表的元素,也就是插入操作b_list[2: 2] = ['t1', 't2']print(b_list) # 1, 'x', 't1', 't2', 'y', 4]如果將列表其中一段賦值為空列表,就變成了刪除列表中的元素。示例代碼:# 將第3個(gè)到第6個(gè)(不包含)元素賦值為空列表,相當(dāng)于刪除操作b_list[2: 5] = []print(b_list) # [1, 'x', 4]對(duì)列表使用分片語(yǔ)法賦值時(shí),不能使用單個(gè)值。如果使用字符串賦值,Python 會(huì)自動(dòng)把字符串當(dāng)成序列處理,其中每個(gè)字符都是一 個(gè)元素。實(shí)例代碼:# Python會(huì)自動(dòng)將str分解成序列b_list[1: 3] = 'hello'print(b_list) # [1, 'h', 'e', 'l', 'l', 'o']在使用分片語(yǔ)法賦值時(shí),也可指定step參數(shù)。但如果指定了step參數(shù),則要求所賦值的列表元素個(gè)數(shù)與所替換的列表元素個(gè)數(shù)相等。示例代碼:c_list = list(range(1, 10))# 指定step為2,被賦值的元素有4個(gè),因此用于賦值的列表也必須有4個(gè)元素c_list[2: 9: 2] = ['a', 'b', 'c', 'd']print(c_list) # [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']往期回顧:Python編程思想(1):Python簡(jiǎn)介與開(kāi)發(fā)環(huán)境搭建Python編程思想(2):Python主要特性、命名規(guī)則與代碼縮進(jìn)Python編程思想(3):數(shù)字及其相關(guān)運(yùn)算Python編程思想(4):字符串類(lèi)型Python編程思想(5):列表與元組的基礎(chǔ)知識(shí)Python編程思想(6):格式化字符串總結(jié)
以上是生活随笔為你收集整理的python 清空所有对象_Python编程思想(7):列表的增删改操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dft变换的两幅图_快速傅里叶变换FFT
- 下一篇: eclipse集成lombok了但是无法