国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


零基礎(chǔ)Python完全自學(xué)教程16:Python中的元組系列知識

    時間: 瀏覽:2070次  來源:站長在線
歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第16課《 Python中的元組系列知識》。本節(jié)課是一個大課,我分了這些知識點進(jìn)行詳細(xì)講解:元組的創(chuàng)建和刪除詳解、訪問元組元素詳解、遍歷元組詳解、修改元組詳解、元組推導(dǎo)式詳解及元組和列表的七大區(qū)別詳解。

歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ) python完全自學(xué)教程》今天給大家分享的是第16課《 Python中的元組系列知識》。本節(jié)課是一個大課,我分了這些知識點進(jìn)行詳細(xì)講解:元組的創(chuàng)建和刪除詳解訪問元組元素詳解遍歷元組詳解、修改元組詳解、元組推導(dǎo)式詳解元組和列表的七大區(qū)別詳解


16.1、python中元組的創(chuàng)建和刪除詳解

溫馨提示:本內(nèi)容和前面所學(xué)的《Python中列表的創(chuàng)建和刪除詳解》內(nèi)容基本一致,大家可以對照學(xué)習(xí)。

16.1.1、元組的概念:(和列表類似)

我們可以回顧一下列表的概念:

列表(list)是由一系列的特定順序排列的元素。它是Python中內(nèi)置的可變序列。在形式上,列表的所有元素都放在一對中括號“[]”里面,兩個相鄰的元素之間,使用英文逗號“,”隔開。在內(nèi)容上,列表可以將整數(shù)、實數(shù)字符串、列表、元組任何類型的元素放入列表中,并且同一列表中,元素的類型可以不同,因此他們之間沒有任何關(guān)系。

元組(tuple)是python中另一個重要的序列結(jié)構(gòu),與列表類似,也是有一系列按特定排列的元素組成。但是,它是不可變序列,因此元組也可以稱之為不可變的列表。在形式上元組的所有元素都放在一對小括號“()”中,相鄰的元素之間使用英文逗號“,”分隔。在內(nèi)容上,可以將整數(shù)實數(shù)、字符串、列表、元組、字典、集合等任何類型的內(nèi)容放入元組中,并且同一個元組中,元素的類型可以不同,因此他們之間沒有任何關(guān)系。通常情況下,元組用于保存程序不可修改的內(nèi)容。

從元組和列表的定義來看,這兩種結(jié)構(gòu)比較相似,但是他們之間的主要區(qū)別就是一個不可變序列,一個是可變序列。即元組中的元素不可以單獨修改,而列表可以任意修改。

了解了什么是元組,接下來就講講創(chuàng)建元組的幾個方法了:

16.1.2、在Python中使用賦值運算符“=”創(chuàng)建元組:(和列表類似)

在Python中,創(chuàng)建元組可以使用賦值運算符“=”創(chuàng)建元組,右邊是賦值,左邊是變量。具體語法如下:

tuplename = (element 1 , element 2 , element 3 , ... , element n)

其中,tuplename 表示元組的名稱,可以是任何符合Python命名規(guī)則的標(biāo)識符;element 1 , element 2 ,表示元組中的元素,這些元素的數(shù)量沒有限制,內(nèi)容上只要是Python中支持的數(shù)據(jù)類型如整數(shù)、實數(shù)、字符串、列表、元組都可以。

如下面的都是合法的元組:

shuzi = (1,2,3,4,5,6,7)                                                        #數(shù)字
shige = ("床前明月光","疑是地上霜","舉頭望明月","低頭思故鄉(xiāng)")                   #詩歌
hunhe = (66,"Python",('人生苦短','我用Python'),["web開發(fā)","云計算","爬蟲"])     #混合元組
python = ('優(yōu)雅',"明確",'''簡單''')

在 Python 中,元組通常都是使用一對小括號將所有元素包圍起來的,但小括號不是必須的,只要將各元素用逗號隔開,Python 就會將其視為元組,請看下面的例子:

shige = "床前明月光","疑是地上霜","舉頭望明月","低頭思故鄉(xiāng)" 
print(shige)

在Python IDLE 中運行結(jié)果如下:

('床前明月光', '疑是地上霜', '舉頭望明月', '低頭思故鄉(xiāng)')
>>> 

當(dāng),創(chuàng)建的元組只有一個元素時,需要在元素的后面加“,”,如:

python = ('優(yōu)雅',)
print(python)

運行結(jié)果為:

('優(yōu)雅',)
>>> 

當(dāng),創(chuàng)建的元組只有一個元素時,元素的后面沒有加“,”,被視為定義了一個字符串,如:

python = ('優(yōu)雅')
print(python)

運行結(jié)果為:

優(yōu)雅
>>> 

溫馨提示:在Python中的內(nèi)置函數(shù)type()可以檢測變量的類型,代碼如下:

python1 = ('優(yōu)雅',)
python2 = ('優(yōu)雅')
print("python1的類型為:",type(python1))
print("python2的類型為:",type(python2))

運行結(jié)果為:

python1的類型為: <class 'tuple'>
python2的類型為: <class 'str'>
>>> 

16.1.3、在Python中創(chuàng)建空的元組():(和列表類似)

在Python中,是可以創(chuàng)建空的元組的,如創(chuàng)建一個空元組代碼如下

kong = ()

和空列表一樣的原理,我們經(jīng)常會用到空的元組。一般情況下,空元組用于為函數(shù)傳遞一個空的值,或者返回一個空的值。

16.1.4、在Python中使用tuple()函數(shù)創(chuàng)建數(shù)值元組:(和列表類似)

在Python中,可以使用tuple() 函數(shù)直接將range()函數(shù)循環(huán)出來的結(jié)果轉(zhuǎn)換為元組。

我們先回顧一下range()函數(shù)的使用方法:(在《Python中的循環(huán)語句》里面學(xué)過)

range(start,end,step)

參數(shù)說明如下:

start:用于指定技術(shù)的起始值,可以省略。如果省略則從0開始。

end:用于指定計數(shù)的結(jié)束值,不能省略。結(jié)束值不包括該值,如range(100),則表示值為0~99。當(dāng)range()函數(shù)只有一個參數(shù)時,即表示指定計數(shù)的結(jié)束值。

step:用于指定步長,即兩個數(shù)之間的間隔,可以省略。如果省略則表示步長為1。如range(1,7)則表示值為1、2、3、4、5、6

tuple() 函數(shù)用法如下:

tuple(data)

其中,data表示可以轉(zhuǎn)換為列表的數(shù)據(jù),包括range對象、字符串、元組、或者其他可以迭代類型的數(shù)據(jù)。

如:創(chuàng)建一個0~20(不包括20)的所有偶數(shù)列表,可以使用以下代碼

tuple(range(0,20,2))

運行結(jié)果如下:

(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)
>>> 

注:使用tuple()函數(shù)不僅可以通過range對象創(chuàng)建元組,還可以通過其他的函數(shù)對象創(chuàng)建元組。其他函數(shù)在后面慢慢會學(xué)到的。

16.1.5、在Python中使用del命令刪除元組(和列表類似)

在Python中,刪除已經(jīng)創(chuàng)建的元組是很簡單的,使用 del 命令即可,語法格式如下:

del 元組名稱

如:刪除一個叫做 shige 的元組:

shige = ("床前明月光","疑是地上霜","舉頭望明月","低頭思故鄉(xiāng)")
del shige

但是,如果你刪除的是一個不存在的元組,就會報錯,如:

shige = ("床前明月光","疑是地上霜","舉頭望明月","低頭思故鄉(xiāng)") 
del sg

當(dāng)然上面不管是定義了shige 還是沒有定義shige 的元組,都是一樣,刪除sg元組都是不存在的,報錯結(jié)果如下:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    del sg
NameError: name 'sg' is not defined
>>> 

實際開發(fā)中并不經(jīng)常使用 del 來刪除元組,因為 Python 自帶的垃圾回收機制會自動銷毀無用的元組,即使開發(fā)者不手動刪除,Python 也會自動將其回收。

16.2、在Python中訪問元組元素詳解

16.2.1、使用print()函數(shù)輸出內(nèi)容。

在Python中,如果將元組中的內(nèi)容輸出是比較簡單的,使用print()函數(shù)即可。

如:我們輸出上個知識點的內(nèi)容中的混合的hunhe元組,只要使用函數(shù)print(hunhe)即可

shuzi = (1,2,3,4,5,6,7)                                                        #數(shù)字
shige = ("床前明月光","疑是地上霜","舉頭望明月","低頭思故鄉(xiāng)")                   #詩歌
hunhe = (66,"Python",('人生苦短','我用Python'),["WEB開發(fā)","云計算","爬蟲"])     #混合元組
python = ('優(yōu)雅',"明確",'''簡單''')
print(hunhe)
print(python)

執(zhí)行結(jié)果如下:

(66, 'Python', ('人生苦短', '我用Python'), ['WEB開發(fā)', '云計算', '爬蟲'])
('優(yōu)雅', '明確', '簡單')
>>> 

經(jīng)過對比,不是 輸入的是 單引號雙引號、三引號 ,輸出的都是 單引號。

通過上述的輸出,我們發(fā)現(xiàn),在輸出元組時,包括了兩側(cè)的小括號()的。

16.2.2、通過索引的方式訪問元組元素。

元組是Python中另一個重要的序列結(jié)構(gòu),也是一個有序的集合,所以要訪問元組中的任何元素,您只需要告訴Python元素的位置(索引)。要訪問元組元素,首先指出元組的名稱,然后指出元素在元組中的位置。

下面,我們來輸出混合元組中的第3個和第2個元素,代碼如下:

hunhe = (66,"Python",('人生苦短','我用Python'),["WEB開發(fā)","云計算","爬蟲"])
print(hunhe[2])
print(hunhe[1])

輸出的結(jié)果為:

('人生苦短', '我用Python')
Python
>>>

昨天的內(nèi)容:

python1 = ('優(yōu)雅',)
python2 = ('優(yōu)雅')
print("python1的類型為:",type(python1))
print("python2的類型為:",type(python2))
print(python1)
print(python2)

輸出結(jié)果為:

python1的類型為: <class 'tuple'>
python2的類型為: <class 'str'>
('優(yōu)雅',)
優(yōu)雅
>>> 

上面結(jié)果可以看出:在輸出的單個元組時,也是包括小括號()。如果是字符串,還不包括左右的引號。

訪問列表元素的時候,我們使用了索引的方法,但是沒有講到切片的方法訪問列表元素。在這里,我們講講使用切片的方法訪問元組。

16.2.3、通過切片的方式訪問元組元素。

訪問元組元素是可以使用切片的方法,訪問元組元素的。

我們訪問混合元組的前2個元素,代碼為:

hunhe = (66,"Python",('人生苦短','我用Python'),["WEB開發(fā)","云計算","爬蟲"])     #混合元組
print(hunhe[:2])

運行結(jié)果為:

(66, 'Python')
>>> 

我們訪問混合元組的后2個元素,代碼為:

hunhe = (66,"Python",('人生苦短','我用Python'),["WEB開發(fā)","云計算","爬蟲"])     #混合元組
print(hunhe[2:])

運行結(jié)果為:

(('人生苦短', '我用Python'), ['WEB開發(fā)', '云計算', '爬蟲'])
>>> 

我們訪問混合元組的第2個到第3個元素,就會報錯了,代碼為:

hunhe = (66,"Python",('人生苦短','我用Python'),["WEB開發(fā)","云計算","爬蟲"])     #混合元組
print(hunhe[2,3])

運行結(jié)果為:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    print(hunhe[2,3])
TypeError: tuple indices must be integers or slices, not tuple
>>> 

實例:我們來輸出每日一語。

import datetime                    #導(dǎo)入日期時間類
mot = ("信任是最稀缺的貨幣。",     #定義一個列表
       "追求快速,反而死的很慘;有時候,慢也就是快!", 
       "改編是一門技術(shù),學(xué)會改編技術(shù),就會改字成金,這輩子不會缺錢。",
       "流量是天然存在的,客戶是天然存在的,方法是天然存在的。",
       "你的每一個時間都很珍貴,都要放在最有生產(chǎn)力的事情上。",
       "萬物皆不為我所有,萬物皆為我所用。",
       "鉆石就在你家后院,秘笈就在你的眼前,你卻每天視而不見。")
day=datetime.datetime.now().weekday()      #獲取當(dāng)前星期
print(mot[day])                            #輸出每日一語

說明:在上述代碼中,datetime.datetime.now()用于獲取當(dāng)前日期,weekday()再則是從日期時間對象中獲取星期,其值為0~6中的一個,0位星期一,6為星期日。

在2021年11月9日的運行結(jié)果為:

追求快速,反而死的很慘;有時候,慢也就是快!
>>> 

16.3、在Python中遍歷元組詳解

站長在線溫馨提示:本節(jié)教程內(nèi)容與《在Python中遍歷列表詳解》大體一致,大家可以對比學(xué)習(xí)。(基本上就是把列表改成元組,[]改成(),list改成tuple)

我們先解釋一下遍歷的意思,遍就是全面,到處的意思,歷就是行、游歷的意思。所謂遍歷就是全部走遍,到處周游的意思。

遍歷元組就是從頭到尾依次從元組中獲取數(shù)據(jù)。

再次強調(diào)一下,元組是一種不可變的序列,不能單個修改某一個元素,但是遍歷元組的每一個元素還是可以的。

Python中,遍歷元組的方法有很多種,下面介紹一些常用的遍歷方法:

16.3.1、直接使用for循環(huán)遍歷元組

直接使用for循環(huán)遍歷元組,只能輸出元素的值,語法格式如下:

for 變量元素 in 元組:
   #輸出變量元素

列如,定義Python的設(shè)計理念,然后通過for循環(huán)遍歷該元組,并輸出每條內(nèi)容。代碼如下:

print("Python設(shè)計理念:")
python = ("優(yōu)雅","明確","簡單")
for linian in python:
    print(linian)

執(zhí)行以后結(jié)果如下:

Python設(shè)計理念:
優(yōu)雅
明確
簡單
>>> 

16.3.2、使用for循環(huán)和enumerate()函數(shù)遍歷元組

使用for循環(huán)和enumerate()函數(shù)可以實現(xiàn)同時輸出索引值和元素內(nèi)容,其語法格式如下:

for index,變量元素 in enumerate(元組)
    #輸出index和變量元素

例如,定義python的設(shè)計理念,然后通過for循環(huán)和enumerate()函數(shù)遍歷該元組,并輸出索引和每條內(nèi)容。代碼如下:

print("Python設(shè)計理念:")
python = ("優(yōu)雅","明確","簡單")
for index,linian in enumerate(python):
    print(index,linian)

執(zhí)行結(jié)果如下:

Python設(shè)計理念:
0 優(yōu)雅
1 明確
2 簡單
>>> 

16.3.3、使用for循環(huán)和tuple()函數(shù)遍歷元組

例如,定義python的設(shè)計理念,然后通過for循環(huán)和tuple()函數(shù)遍歷該元組,并輸出每條內(nèi)容。代碼如下:

print("Python設(shè)計理念:")
python = ("優(yōu)雅","明確","簡單")
for linian in tuple(python):
    print(linian)

執(zhí)行結(jié)果如下:

Python設(shè)計理念:
優(yōu)雅
明確
簡單
>>> 

16.3.4、使用for循環(huán)和range()函數(shù)遍歷元組

定義元組number 的元組,然后通過for循環(huán)和range()函數(shù)遍歷該元組,并輸出每條內(nèi)容。代碼如下:

number = (1122,2366,4400,5577,8888)
for i in range(len(number)):
    print(i,number[i])

執(zhí)行結(jié)果為:

0 1122
1 2366
2 4400
3 5577
4 8888
>>> 

可以不帶索引輸出,代碼為:

number = (1122,2366,4400,5577,8888)
for i in range(len(number)):
    print(number[i])

運行結(jié)果為:

1122
2366
4400
5577
8888
>>> 

我們把輸出的結(jié)果,放在同一行,代碼為:

number = (1122,2366,4400,5577,8888)
for i in range(len(number)):
    print(number[i],end=" ")

執(zhí)行結(jié)果為:

1122 2366 4400 5577 8888 
>>> 

注意 range()函數(shù)只能用于數(shù)字的元組,在非數(shù)字中就會報錯了。

16.3.5、使用for循環(huán)和iter()函數(shù)遍歷元組

列如,定義python的設(shè)計理念,然后使用for循環(huán)和iter()函數(shù)遍歷該元組,并輸出每條內(nèi)容。代碼如下:

print("Python設(shè)計理念:")
python = ("優(yōu)雅","明確","簡單")
for linian in iter(python):
    print(linian)

輸出結(jié)果如下:

Python設(shè)計理念:
優(yōu)雅
明確
簡單
>>> 

16.3.6、使用while循環(huán)遍歷元組

定義,元組number 的元組,然后通過while循環(huán)遍歷元組并輸出每條內(nèi)容。代碼如下:

number = (1122,2366,4400,5577,8888)
i = 0
while i < len(number):
    print(number[i])
    i = i + 1

運行結(jié)果如下:

1122
2366
4400
5577
8888
>>> 

16.4、在python中修改元組詳解

回顧一下Python中列表元素的更新,我們分了3節(jié)課程來分享,分別是添加列表元素、修改列表元素和刪除列表元素。但是在元組中,就不能說添加元組元素、修改元組元素和刪除元組元素了,因為元組是不可變的序列,也是一種不可變的列表。當(dāng)然我們也可以嘗試一下修改一個元組元素看看,有什么結(jié)果?

我們以Python的設(shè)計理念(設(shè)計哲學(xué))為例,我們來修改一個參數(shù)看看:

python = ("優(yōu)雅","明確","簡單")
python[2] = "復(fù)雜"
print(python)

運行結(jié)果如下:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    python[2] = "復(fù)雜"
TypeError: 'tuple' object does not support item assignment
>>> 

翻譯一下:“TypeError: 'tuple' object does not support item assignment”就是說:TypeError:“tuple”對象不支持項分配

也就是說在Python的元組是不可以單一修改元組元素的。那怎樣才能修改元組呢?下面介紹兩個方法:

16.4.1、在Python中直接使用賦值運算符“=”給元組重新賦值。

雖然說元組是不可變的序列,我們不能對單個元素的值進(jìn)行修改,但是,這并不意味著,元組就完全不能修改了。我們可以對元組進(jìn)行重新賦值:如:

python = ("優(yōu)雅","明確","簡單")
python = ("優(yōu)雅的","明確的","簡單的")
print("新元組:",python)

執(zhí)行結(jié)果如下:

新元組: ('優(yōu)雅的', '明確的', '簡單的')
>>> 

16.4.2、在Python中使用加賦值運算符“+”連接兩個元組。如:

python = ('網(wǎng)站開發(fā)','大數(shù)據(jù)處理','人工智能','自動化運維','云計算')
print("原元組:",python)
python = python + ('網(wǎng)絡(luò)爬蟲','游戲開發(fā)','圖形圖像處理')
print("新元組:",python)

運行結(jié)果如下:

原元組: ('網(wǎng)站開發(fā)', '大數(shù)據(jù)處理', '人工智能', '自動化運維', '云計算')
新元組: ('網(wǎng)站開發(fā)', '大數(shù)據(jù)處理', '人工智能', '自動化運維', '云計算', '網(wǎng)絡(luò)爬蟲', '游戲開發(fā)', '圖形圖像處理')
>>> 

這里值得注意的是,這里是元組和元組之間相“+”是可以的。元組和其他類型就不行了,如:

python = ('網(wǎng)站開發(fā)','大數(shù)據(jù)處理','人工智能','自動化運維','云計算')
python = python + ['網(wǎng)絡(luò)爬蟲','游戲開發(fā)','圖形圖像處理']      # 元組+列表
print(python)

運行結(jié)果如下‘:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    python = python + ['網(wǎng)絡(luò)爬蟲','游戲開發(fā)','圖形圖像處理']      # 元組+列表
TypeError: can only concatenate tuple (not "list") to tuple
>>> 

翻譯一下:“TypeError: can only concatenate tuple (not "list") to tuple”意思是:TypeError:只能將元組(而不是“列表”)連接到元組。

同理,元組也不能和字符串相連接,如:

python = ('網(wǎng)站開發(fā)','大數(shù)據(jù)處理','人工智能','自動化運維','云計算')
python = python + '網(wǎng)絡(luò)爬蟲'      # 元組+字符串
print(python)

運行結(jié)果:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    python = python + '網(wǎng)絡(luò)爬蟲'      # 元組+字符串
TypeError: can only concatenate tuple (not "str") to tuple
>>> 

翻譯“TypeError: can only concatenate tuple (not "str") to tuple”意思是:TypeError:只能將元組(而不是“str”)連接到元組。

在這里,還有一點要注意的是:如果元組中只有一個元素時,不要忘記加逗號哦,如:

python = ('網(wǎng)站開發(fā)','大數(shù)據(jù)處理','人工智能','自動化運維','云計算')
python = python + ('網(wǎng)絡(luò)爬蟲')
print(python)

運行結(jié)果為:

Traceback (most recent call last):
  File "D:\Python\Python310\Doc\000.py", line 2, in <module>
    python = python + ('網(wǎng)絡(luò)爬蟲')
TypeError: can only concatenate tuple (not "str") to tuple
>>> 

 不用翻譯了吧,和上面一樣的,當(dāng)元組元素只有一個的時候,被視為字符串,但是加了“,”就被視為元組了哦!

python = ('網(wǎng)站開發(fā)','大數(shù)據(jù)處理','人工智能','自動化運維','云計算')
python = python + ('網(wǎng)絡(luò)爬蟲',)
print(python)

運行結(jié)果如下:

('網(wǎng)站開發(fā)', '大數(shù)據(jù)處理', '人工智能', '自動化運維', '云計算', '網(wǎng)絡(luò)爬蟲')
>>> 

16.5、Python中的元組推導(dǎo)式詳解

我們在《python中的列表推導(dǎo)式詳解》中學(xué)過,使用列表推導(dǎo)式可以快速生成一個新的列表,或者根據(jù)某個列表生成滿足指定需求的列表。

生成指定范圍的數(shù)值列表,語法格式如下:

list = [Expression for var in range]

那么我們使用列表推導(dǎo)式的方法用于元組推導(dǎo)式行不行呢?

我們根據(jù)列表推導(dǎo)式的方法,把“[]”改成“()”試一試:

tuple = (Expression for var in range)

我們也和列表推導(dǎo)式一樣的內(nèi)容:

a1 = (i for i in range(10))               #生成一個10以內(nèi)的元組
a2 = (i for i in range(10) if i % 2 == 0) #生成一個10以內(nèi)的偶數(shù)元組
print(a1)
print(a2)

運行結(jié)果如下:

<generator object <genexpr> at 0x000001DC03E3C900>
<generator object <genexpr> at 0x000001DC03DBBD10>
>>> 

為什么是這樣的,而不是下面這樣我們想要的呢?

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
(0, 2, 4, 6, 8)
>>> 

從上面的執(zhí)行結(jié)果可以看出,使用元組推導(dǎo)式生成的結(jié)果并不是一個元組,而是一個生成器對象,這一點和列表推導(dǎo)式是不同的。

那么怎樣才能使用元組推導(dǎo)式獲得新的元組呢?

下面講解3個方法使用元組推導(dǎo)式獲得新的元組:

16.5.1、在Python中使用 tuple() 函數(shù),可以直接將生成器對象轉(zhuǎn)換成元組。

要使用該生成器對象,可以轉(zhuǎn)換成元組或者列表。下面我們就上面的內(nèi)容進(jìn)行轉(zhuǎn)換成元組和列表,代碼如下:

a1 = (i for i in range(10))               #生成一個10以內(nèi)的元組
a2 = (i for i in range(10) if i % 2 == 0) #生成一個10以內(nèi)的偶數(shù)元組
print("轉(zhuǎn)換后的元組為:",tuple(a1))            #轉(zhuǎn)換為元組
print("轉(zhuǎn)換后的列表為:",list(a2))             #轉(zhuǎn)換為列表

運行結(jié)果如下:

轉(zhuǎn)換后的元組為: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
轉(zhuǎn)換后的列表為: [0, 2, 4, 6, 8]
>>> 

16.5.2、在Python中直接使用 for 循環(huán)遍歷生成器對象,可以獲得各個元素。例如:

a = (i for i in range(10))               # 生成一個10以內(nèi)的元組
for i in a:                              # for 循環(huán)遍歷生成器對象
    print(i,end=',')                     # 輸出元組元素在同一行顯示,并且用“,”隔開
print(tuple(a))                          # 輸出新元組

運行結(jié)果為:

0,1,2,3,4,5,6,7,8,9,()
>>> 

16.5.3、 在Python中使用 __next__()方法遍歷生成器對象,也可以獲得各個元素。例如:

a = (i for i in range(3))    # 生成一個3以內(nèi)的元組
print(a.__next__())          # 輸出第一個元素
print(a.__next__())          # 輸出第二個元素
print(a.__next__())          # 輸出第三個元素
a = tuple(a)                 # 轉(zhuǎn)換為元組
print("轉(zhuǎn)換后的元組:",a)    # 輸出新元組

運行結(jié)果為:

0
1
2
轉(zhuǎn)換后的元組: ()
>>> 

通過上面for循環(huán)遍歷生成器對象和__next__()方法遍歷生成器對象以后,如果還需要使用該生成器對象的話,都必須創(chuàng)建新的生成器對象才行,因為遍歷以后,原來的生成器對象已經(jīng)不存在了,輸出的新元組為空。

16.6、python中元組和列表的七大區(qū)別詳解

元組和列表都是屬于序列,都是按照特定順序儲存的一組元素,都可以將整數(shù)實數(shù)字符串、列表、元組、字典、集合等任何類型的內(nèi)容。創(chuàng)建和刪除的方法也是一樣。

列表和元組之間還是有區(qū)別的,下面站長在線整理了它們之間的7大區(qū)別:

16.6.1、列表是動態(tài)的,屬于可變序列,它的元素可以隨時增加、修改或者刪除,而元組是靜態(tài)的,屬于不可變序列,無法增加、刪除、修改元素,除非整體替換。

16.6.2、列表可以使用append()、extend()、insert()、remove()和pop()等方法實現(xiàn)添加和修改列表元素,而元組則沒有這幾個方法,因為不能向元組中添加和修改元素。同樣,也不能刪除元素,可以整體替換。

16.6.3、列表可以使用切片訪問和修改列表中的元素。元組也支持切片,但是它只支持通過切片訪問元組中的元素,不支持修改。

16.6.4、元組比列表的訪問和處理速度快。所以如果只需要對其中的元素進(jìn)行訪問,而不進(jìn)行任何修改,建議使用元組而不使用列表。

16.6.5、因為列表可以修改,元組不可以修改,因此元組比列表具有更高的安全性

16.6.6、列表不能作為字典的鍵,而元組可以。

16.6.7、存儲方式不同:空列表 比空元組多占用16個字節(jié)。

>>> lista = []
>>> lista.__sizeof__()
40
>>> tuplea = ()
>>> tuplea.__sizeof__()
24
>>> 

相關(guān)閱讀:

《零基礎(chǔ)Python完全自學(xué)教程》目錄 

1、認(rèn)識python

2、安裝python及寫第一個Python程序

3、Python開發(fā)工具介紹

4、Python語法特點

5、Python中的變量

6、Python中的基本數(shù)據(jù)類型

7、Python中的基本輸入和輸出

8、Python中常用的運算符

9、Python中運算符的優(yōu)先級和條件表達(dá)式

10、Python中的三大程序結(jié)構(gòu)

11、Python中的選擇語句

12、Python中的循環(huán)語句

13、Python中的break語句、continue語句和pass語句

14、Python中的序列知識詳解

15、Python中的列表



本文地址:http://003188.cn/pythonyuanzu.html
碼字不易,打個賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

截止2024年11月6日,未注冊的ol尾5字母.com域名列表,共10456個

截止2024年11月6日,未注冊的ol尾5字母.com域名列表,共10456個

2024-11-07  分類:行業(yè)資訊  瀏覽:4次


2024年11月9日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月9日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-07  分類:CN刪除域名  瀏覽:6次


截止2024年11月6日,未注冊的xx尾5聲母.com域名列表,共5301個

截止2024年11月6日,未注冊的xx尾5聲母.com域名列表,共5301個

2024-11-06  分類:行業(yè)資訊  瀏覽:13次


截止2024年11月6日,未注冊的zx尾5聲母.com域名列表,共5251個

截止2024年11月6日,未注冊的zx尾5聲母.com域名列表,共5251個

2024-11-06  分類:行業(yè)資訊  瀏覽:15次


2024年11月8日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月8日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-06  分類:CN刪除域名  瀏覽:13次


2024年11月7日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月7日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-05  分類:CN刪除域名  瀏覽:100次


2024年11月6日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月6日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-04  分類:CN刪除域名  瀏覽:25次


2024年11月5日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月5日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-03  分類:CN刪除域名  瀏覽:41次


2024年11月4日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月4日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5字母cn和com.cn域名。

2024-11-02  分類:CN刪除域名  瀏覽:42次


2024年11月3日刪除的部分cn和com.cn域名列表cn

站長在線導(dǎo)讀:2024年11月3日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5字母cn和com.cn域名。

2024-11-01  分類:CN刪除域名  瀏覽:201次