python中元組創(chuàng)建、索引訪問(wèn)和元組作用詳解
一、元組的創(chuàng)建和刪除
在 Python 中,元組(tuple)是一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)不可變的序列。元組通常用于存儲(chǔ)一組相關(guān)的數(shù)據(jù),這些數(shù)據(jù)在創(chuàng)建后不能被修改(即元組是不可變的)。元組使用圓括號(hào) () 來(lái)定義,并且可以包含不同類型的元素。
1.元組創(chuàng)建三種方法
你可以使用圓括號(hào)來(lái)創(chuàng)建元組,也可以使用逗號(hào)來(lái)創(chuàng)建只有一個(gè)元素的元組(如果只有一個(gè)元素而不加逗號(hào),它會(huì)被識(shí)別為普通的變量而不是元組)。
# 使用小括號(hào)創(chuàng)建元組 a = ('yuwen',25,[4,6,9],['d','k'],'yuanzu') print(a) #使用內(nèi)置函數(shù)tuple()創(chuàng)建元組 b = tuple('helloworld26') print(b) c = (5,88,69,33) print(c) d = tuple([1,2,3,8,9,66]) print(d) # 逗號(hào)創(chuàng)建 e = 10,2,45,'fgh' print(e) # 一個(gè)元素 f = (4,) print(f)
2.元組像序列操作
a = (11,25,69,86,34) print('yuwen在a字符串中存在嗎?:',(10 in a)) print('d在a字符串中存在嗎?:',(15 in a)) print('o在a字符串中不存在嗎?:',(12 not in a)) print('len()', len(a) ) print('max()', max(a) ) print('min()', min(a) ) print('a.index()',a.index(69) ) print('a.count()',a.count(34))
注意如果元組元素是int和字符串,還有其他的,就使用代碼出錯(cuò),例如
a = ('yuwen', 25,[4,6,9], ['d','k'], 'yuanzu')
3.訪問(wèn)元組中的元素
# 訪問(wèn)元組中的第一個(gè)元素 first_element = my_tuple[0] # 訪問(wèn)元組中的第三個(gè)元素 third_element = my_tuple[2]
4.元組刪除
del a print(t)
結(jié)果運(yùn)行報(bào)錯(cuò)
二、元組的訪問(wèn)和遍歷
a = ('yuwen', 25,[4,6,9], ['d','k'], 'yuanzu') # 索引訪問(wèn) print(a[2]) a1= a[0:3:2]# 切片操作 print(a1) # 元組的遍歷 for i in a: print(i) print() # len()使用 for i in range(len(a)): print(i,a[i]) # 枚舉類型 for i,j in enumerate(a): print(i,'------->',j) print() for i,j in enumerate(a,start=11): print(i,'----->',j)
三、元組的生成式
a = (i for i in range(1,4)) print(a) a = tuple(a) print(a) # 遍歷 for i in a: print(i)
取出元素:
next() 是一個(gè)特殊方法(也稱為魔術(shù)方法或雙下方法),它定義了迭代器對(duì)象的下一個(gè)元素是如何被獲取的。當(dāng)你使用 next() 函數(shù)(或在循環(huán)中隱式地)請(qǐng)求迭代器的下一個(gè)元素時(shí),Python會(huì)在迭代器對(duì)象上調(diào)用 next() 方法。
迭代器
迭代器是一個(gè)實(shí)現(xiàn)了兩個(gè)方法 iter() 和 next() 的對(duì)象。iter() 方法應(yīng)該返回迭代器對(duì)象本身(這通常意味著迭代器對(duì)象也是可迭代對(duì)象),而 next() 方法在每次調(diào)用時(shí)應(yīng)該返回序列中的下一個(gè)元素。如果迭代器耗盡了其元素(即沒(méi)有更多元素可以返回),則 next() 方法應(yīng)該引發(fā)一個(gè) StopIteration 異常,以通知迭代終止。
a = (i for i in range(1,4)) print(a) # a = tuple(a) # print(a) # # # 遍歷 # for i in a: # print(i) print(a.__next__()) print(a.__next__()) print(a.__next__()) a = tuple(a) print(a)
四、元組和列表的區(qū)別
1.可變性
列表(List):列表是可變的,這意味著在創(chuàng)建后,你可以修改、添加或刪除其中的元素。例如,你可以使用 append()、extend()、insert()、remove() 和 pop() 等內(nèi)置方法來(lái)修改列表的內(nèi)容。
元組(Tuple):元組是不可變的,一旦創(chuàng)建,其內(nèi)容就不能被修改、添加或刪除。嘗試修改元組中的元素會(huì)引發(fā) TypeError 異常。
2.語(yǔ)法表示
列表:列表使用方括號(hào) [] 來(lái)定義,元素之間用逗號(hào)分隔。例如:my_list = [1, 2, 3]。
元組:元組使用圓括號(hào) () 來(lái)定義,元素之間也用逗號(hào)分隔。例如:my_tuple = (1, 2, 3)。值得注意的是,當(dāng)元組中只有一個(gè)元素時(shí),需要在元素后面加上逗號(hào)以區(qū)分單元素元組和括號(hào)內(nèi)的單個(gè)表達(dá)式。例如:(5,) 是一個(gè)元組,而 (5) 只是一個(gè)帶有圓括號(hào)的整數(shù)表達(dá)式。
3.內(nèi)存占用和性能
內(nèi)存占用:由于元組是不可變的,它們?cè)趦?nèi)存中的存儲(chǔ)效率通常比列表更高。因?yàn)椴恍枰獮榭赡艿臄U(kuò)展操作預(yù)留額外的空間。
性能:在處理大量數(shù)據(jù)時(shí),元組的性能通常比列表更好。這是因?yàn)樵M的不可變性使得它們?cè)谀承┣闆r下更易于優(yōu)化。然而,在需要頻繁修改元素的場(chǎng)景下,列表可能會(huì)比元組更快,因?yàn)榱斜頌樾薷牟僮魈峁┝烁嗟膬?nèi)置方法。
4. 用途
列表:列表更適用于需要頻繁修改、添加或刪除元素的場(chǎng)景。例如,你可以使用列表來(lái)存儲(chǔ)一組需要?jiǎng)討B(tài)變化的數(shù)據(jù)。
元組:元組通常用于存儲(chǔ)不可變的數(shù)據(jù)集。例如,它們可以作為字典的鍵、函數(shù)的參數(shù)或返回值等。由于元組的不可變性,它們還可以用于表示一些固定的配置信息或常量集合。
5. 方法支持
列表:列表提供了豐富的內(nèi)置方法來(lái)修改其內(nèi)容。例如,append() 方法用于在列表末尾添加元素,extend() 方法用于將另一個(gè)列表中的所有元素添加到當(dāng)前列表的末尾,insert() 方法用于在指定位置插入元素等。
元組:由于元組是不可變的,它們的方法較少。常用的方法包括 count()(返回指定元素在元組中出現(xiàn)的次數(shù))和 index()(返回指定元素在元組中的索引位置)。
總結(jié)
到此這篇關(guān)于python中元組創(chuàng)建、索引訪問(wèn)和元組作用的文章就介紹到這了,更多相關(guān)python元組創(chuàng)建、索引訪問(wèn)和作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python獲取網(wǎng)頁(yè)數(shù)據(jù)的五種方法
在 Python 中,爬蟲(chóng)用于自動(dòng)化獲取網(wǎng)頁(yè)數(shù)據(jù),你可以使用多種方法來(lái)抓取網(wǎng)頁(yè)內(nèi)容,具體使用哪種方法取決于網(wǎng)頁(yè)的結(jié)構(gòu)、內(nèi)容類型以及你所需的精確度,以下是常見(jiàn)的 5 種獲取網(wǎng)頁(yè)數(shù)據(jù)的方式,需要的朋友可以參考下2025-01-01解析numpy中的iscomplex方法及實(shí)際應(yīng)用
NumPy 的 iscomplex 方法為檢查數(shù)組中的元素是否為復(fù)數(shù)提供了一種高效且易于使用的接口,本文介紹了 iscomplex 方法的基本概念、使用方法以及它在解決實(shí)際問(wèn)題中的應(yīng)用,需要的朋友可以參考下2024-06-06使用 Python 獲取 Linux 系統(tǒng)信息的代碼
在本文中,我們將會(huì)探索使用Python編程語(yǔ)言工具來(lái)檢索Linux系統(tǒng)各種信息,需要的朋友可以參考下2014-07-07pandas 相關(guān)性和正態(tài)性分析的實(shí)踐
當(dāng)我們談?wù)撜龖B(tài)性(Normality)和相關(guān)性(Correlation)時(shí),我們實(shí)際上在嘗試?yán)斫鈹?shù)據(jù)的分布模式和不同變量之間的關(guān)系,本文就來(lái)介紹一下pandas 相關(guān)性和正態(tài)性的實(shí)踐,感興趣的可以了解一下2024-07-07Python使用Chartify庫(kù)進(jìn)行數(shù)據(jù)分析繪制詳解
這篇文章主要介紹了Python使用Chartify庫(kù)進(jìn)行數(shù)據(jù)分析繪制,它提供了簡(jiǎn)潔易用的API,讓我們能夠快速地繪制出美觀且專業(yè)的圖表,無(wú)需像使用matplotlib和seaborn那樣花費(fèi)大量時(shí)間去調(diào)整各種復(fù)雜的參數(shù),大大提高了數(shù)據(jù)可視化的效率,需要的朋友可以參考下2025-04-04Python 實(shí)現(xiàn)OpenCV格式和PIL.Image格式互轉(zhuǎn)
今天小編就為大家分享一篇Python 實(shí)現(xiàn)OpenCV格式和PIL.Image格式互轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01