python3 第十三章,python3

來源:互聯網
上載者:User

python3 第十三章,python3

  • 元組與列表類似,不同之處在於元組的元素不能修改。
  • 元組使用小括弧,列表使用方括弧。

元組建立很簡單,只需要在括弧中添加元素,並使用逗號隔開即可:

language = ('c', 'c++', 'python')

也可以省略括弧:

language = 'c', 'c++', 'python'

 

建立空元組:

language = ()

 

元組中只包含一個元素時,需要在元素後面添加逗號“,”來消除歧義,否則括弧會被當作運算子使用(思考,會當做什麼運算子來用):

tup1 = (50)print(type(tup1))  # 不加逗號,類型為整型tup1 = (50,)print(type(tup1))  # 加上逗號,類型為元組

以上代碼,輸出:

<class 'int'><class 'tuple'>

元組與字串類似,下標索引從0開始,可以進行截取,組合等。

 

1、訪問元組

元組可以使用下標索引來訪問元組中的值:

language = ('c', 'c++', 'python')
print(language[0])print(language[1:3])

以上代碼,輸出:

c('c++', 'python')

 

2、修改元組

元組中的元素值是不允許修改的,但我們可以對元組進行串連組合,如下執行個體:

language = ('c', 'c++', 'python')animal = ('dog', 'cat')# 以下修改元組元素操作是非法的。# language[0] = 'C#'tup = language + animal  # 建立一個新的元組print(tup)

以上代碼,輸出:

('c', 'c++', 'python', 'dog', 'cat')

 

3、刪除元組

元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組,如下執行個體:

language = ('c', 'c++', 'python')print(language)del languageprint('刪除後的元組 ', language)

以上代碼,輸出:

('c', 'c++', 'python')NameError: name 'language' is not defined

我們發現,調用del刪除元組後,再列印元組language會輸出變數會有異常資訊

 

4、元組運算子

與字串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和複製,運算後會產生一個新的元組。

Python 運算式 結果 描述
len((1, 2, 3)) 3 計算元素個數
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 串連
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 複製
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

 

5、元組索引,截取
因為元組也是一個序列,所以我們可以訪問元組中的指定位置的元素,也可以截取索引中的一段元素,如下所示:

language = ('c', 'c++', 'python')print('讀取第三個元素language[2]:', language[2])print('從右側開始讀取倒數第二個元素language[-2]:', language[-2])print('輸出從第二個元素開始後的所有元素language[1:]:', language[1:])

以上代碼,輸出:

讀取第三個元素language[2]: python從右側開始讀取倒數第二個元素language[-2]: c++輸出從第二個元素開始後的所有元素language[1:]: ('c++', 'python')

 

6、“可變的”tuple:

language = ('c', 'c++', ['c#', 'python'])  # 元組language的第三個元素為列表print(language)language[2][0] = 'java'  # 改變列表的第1個元素的值print(language)

以上代碼,輸出:

('c', 'c++', ['c#', 'python'])('c', 'c++', ['java', 'python'])

不是說tuple一旦定義後就不可變了嗎?怎麼後來又變了?表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向'a',就不能改成指向'b',指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

理解了“指向不變”後,要建立一個內容也不變的tuple怎麼做?那就必須保證tuple的每一個元素本身也不能變。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.