成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

想要熟練掌握Python元組?你需要了解這10件應(yīng)知事項(xiàng)

開發(fā) 后端
在今天的文章里,小芯將帶領(lǐng)大家回顧正確使用Python元組的最常用方法。

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

人生苦短,Python是岸。

作為一種通用編程語(yǔ)言,Python已成為各學(xué)術(shù)和工業(yè)領(lǐng)域中最流行的語(yǔ)言之一。

此前,IEEESpectrum 發(fā)布的第五屆年度編程語(yǔ)言交互排行榜中,Python 不但雄踞第一,在綜合指數(shù)、用戶增速、就業(yè)優(yōu)勢(shì)和開源語(yǔ)言單項(xiàng)中,全部霸占榜首。

[[322228]]

Python擁有強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)集合,例如int、 string、 list、 dict和 tuple——一個(gè)大小固定且不可變數(shù)據(jù)序列。

在今天的文章里,小芯將帶領(lǐng)大家回顧正確使用Python元組的最常用方法。

1. 使用索引訪問元組中的單個(gè)元素

創(chuàng)建元組后,有時(shí)需要訪問它的一些值。一種方法是使用基于0的索引對(duì)其進(jìn)行訪問。參見下方示例。值得注意的是,在Python中,使用負(fù)數(shù)以相反的順序索引序列。例如,-1是序列中最后一個(gè)元素的索引。當(dāng)然,如試圖使用范圍之外的索引訪問元素,將看到IndexError(索引錯(cuò)誤)。

  1. >>> tuple_index = (100,'text', False, {1: 'five', 2: True})>>> tuple_index[0] 
  2. 100>>> tuple_index[-1] 
  3. {1: 'five', 2: True}>>> tuple_index[2] 
  4. False>>> tuple_index[6] 
  5. Traceback (most recent call last): 
  6.   File "<stdin>", line 1,in <module> 
  7. IndexError: tuple index out of range 

2. 可變?cè)?/strong>

雖然一個(gè)元組不能作為一個(gè)對(duì)象整體改變,但如果單個(gè)元素本身是可變的,就可以對(duì)其進(jìn)行更改。參見下方示例。具體來說,修改了tuple(元組)中的 list 和 dict.

  1. >>> mutable_elements =(1, [1, 2], {0: 'zero', 1: 'one'})>>> mutable_elements[1].append(3) 
  2. >>> mutable_elements 
  3. (1, [1, 2, 3], {0: 'zero', 1: 'one'})>>> mutable_elements[2][2] ='two' 
  4. >>> mutable_elements 
  5. (1, [1, 2, 3], {0: 'zero', 1: 'one', 2: 'two'}) 

3. 高級(jí)元組拆包

有時(shí)拆包一個(gè)元組,并不需要訪問所有的單個(gè)元素。對(duì)于那些不重要的元素,可以用下劃線(_)表示。另一種高級(jí)的tuple (元組)拆包技術(shù)是,使用星號(hào)(*)表示tuple (元組)中的元素序列。_和*用法也可以組合使用。

  1. >>> advanced_unpacking0= (1, 2, 3) 
  2. >>> a, _, c = advanced_unpacking0 
  3. >>> a 
  4. >>> c 
  5. 3>>> advanced_unpacking1 = (1, 2, 3, 4, 5, 11, 12, 13, 14, 15) 
  6. >>> a, *middle, c = advanced_unpacking1 
  7. >>> middle 
  8. [2, 3, 4, 5, 11, 12, 13, 14] 
  9. >>> _, *tail = advanced_unpacking1 
  10. >>> tail 
  11. [2, 3, 4, 5, 11, 12, 13, 14, 15] 
  12. >>> head, *_ = advanced_unpacking1 
  13. >>> head 

4. 使用值序列創(chuàng)建元組

創(chuàng)建元組時(shí),需使用逗號(hào)分隔值序列。括號(hào)是可選的,尤其在聲明表達(dá)式不直接的情況下,使用括號(hào)可以提高可讀性。

  1. >>> tuple0 = 1, 4, 5 
  2. >>> print(tuple0) 
  3. (1, 4, 5)>>> tuple1 = (1, 2, 'three') 
  4. >>> print(tuple1) 
  5. (1, 2, 'three')>>> tuple2 = (4, 7, ('a', 'b'), lambda x: x+1) 
  6. >>> print(tuple2) 
  7. (4, 7, ('a', 'b'), <function <lambda> at 0x106e98830>)>>>tuple3 = () 
  8. >>> print(tuple3) 
  9. ()>>> tuple4 = 'one'
  10. >>> print(tuple4) 
  11. ('one',) 

特殊的情況是:使用一對(duì)括號(hào)創(chuàng)建一個(gè)空tuple(元組);在唯一值后使用逗號(hào)創(chuàng)建單值tuple(元組)。

5. 計(jì)算元組中元素的數(shù)量

由于tuple(元組)是一個(gè)序列,所以可使用len()函數(shù)計(jì)算所有元素總數(shù)。另一個(gè)函數(shù) count()也很方便,可用做計(jì)算調(diào)用時(shí)指定的某個(gè)值的個(gè)數(shù)。參見下方示例。

  1. >>> tuple_len = (1, 3,'one', 'three', 'five') 
  2. >>> len(tuple_len) 
  3. 5>>> tuple_count = (1, 1, 2, 2, 2, 2, 3, 3, 3) 
  4. >>> tuple_count.count(2) 
  5. >>> tuple_count.count(3) 

6. 使用tuple()函數(shù)創(chuàng)建元組

可使用內(nèi)置 tuple()方法創(chuàng)建元組,該方法將 iterable (迭代)作為唯一參數(shù)。生成的tuple (元組)將是 iterable 的迭代項(xiàng)序列。如下示例中,元組分別從str、dict和 list生成。

  1. >>> tupletuple5 =tuple(['a', 'b']) 
  2. >>> print(tuple5) 
  3. ('a', 'b')>>> tupletuple6 = tuple('tuple') 
  4. >>> print(tuple6) 
  5. ('t', 'u', 'p', 'l', 'e')>>> tupletuple7 = tuple({'a': 1, True: 4}) 
  6. >>> print(tuple7) 
  7. ('a', True)>>> tupletuple8 = tuple((1, 'two', [1, 2])) 
  8. >>> print(tuple8) 
  9. (1, 'two', [1, 2]) 

7. 使用拆包方法訪問元組的單個(gè)元素

使用元組可能經(jīng)常聽到的另一個(gè)概念是tuple(元組)拆包,它允許訪問單個(gè)元素。參見下方示例。

  1. >>> tuple_unpacking =(1, 'two', [3, 3, 3], {'four': 4}) 
  2. >>> a, b, c, d = tuple_unpacking>>> a 
  3. >>> b 
  4. 'two' 
  5. >>> c 
  6. [3, 3, 3] 
  7. >>> d 
  8. {'four': 4} 

8. for循環(huán)中的元組

時(shí)常需要在for循環(huán)中使用元組。由于元組是可迭代的,所以可直接在for循環(huán)中使用,該循環(huán)將迭代元組的單個(gè)元素。或者,如果想應(yīng)用計(jì)數(shù)器,可使用元組內(nèi)置的 enumerate() 方法。參見下方示例。

  1. >>> tuple_for_loop =('one', 'two', 'three') 
  2. >>> for i in tuple_for_loop: 
  3. ... print(i) 
  4. ... 
  5. one 
  6. two 
  7. three>>> for (i, item) in enumerate(tuple_for_loop, start=1): 
  8. ... print(str(i) + ': is ' + item) 
  9. ... 
  10. 1: is one 
  11. 2: is two 
  12. 3: is three 

9. 元組的不可變性

正如本文開頭提到的,元組是一個(gè)不可變值序列。因此,不能改變單個(gè)元素的值。

  1. >>> immut_tuple = (3,5, 7) 
  2. >>> immut_tuple[0] = 1 
  3. Traceback (most recent call last): 
  4. File "<stdin>", line 1,in <module> 
  5. TypeError: 'tuple' object does not support item assignment 

10. 元組連接

可使用加號(hào)(+)運(yùn)算符連接多個(gè)元組,來創(chuàng)建一個(gè)新元組。或者,如果想通過多次連接同一元組來創(chuàng)建一個(gè)新的元組,可使用乘法(*)運(yùn)算符。

  1. >>> concat_tuple0 = (1,2) + ('three', 4) + ('five', 6) 
  2. >>> concat_tuple0 
  3. (1, 2, 'three', 4, 'five', 6)>>> concat_tuple1 = ('odd', 'event') * 4 
  4. >>> concat_tuple1 
  5. ('odd', 'event', 'odd', 'event', 'odd', 'event', 'odd', 'event') 

元組是筆者在Python編程中最喜歡使用的數(shù)據(jù)結(jié)構(gòu)之一,因其便于構(gòu)造和訪問單個(gè)元素。當(dāng)然,請(qǐng)記住元組是不可變的,并且沒有過多的方法,這可能限制其更廣泛的使用,這種情況下,可以考慮使用list 或dict。

 

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2019-07-11 10:45:34

MQ中間件 API

2025-02-08 10:29:03

2021-01-16 11:44:46

編程語(yǔ)言開發(fā)

2020-01-09 08:26:16

代碼JS開發(fā)

2009-10-29 15:50:49

VB.NET Exce

2009-12-04 08:53:49

TechNet雜志

2009-12-16 17:31:30

Ruby on Rai

2012-06-26 10:13:55

2011-04-01 11:16:06

hessian

2013-07-31 11:05:05

硬件處理ITM硬件

2017-05-08 11:39:33

Web WorkersWeb

2015-07-15 13:34:37

JS開發(fā)習(xí)慣

2012-07-16 11:48:51

2012-06-27 09:11:47

2013-10-11 15:26:32

linux網(wǎng)絡(luò)監(jiān)控

2016-11-01 16:41:08

直通網(wǎng)線連接端口傳輸數(shù)據(jù)

2019-09-03 15:33:35

網(wǎng)絡(luò)安全保險(xiǎn)網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2020-11-16 10:45:21

物聯(lián)網(wǎng)

2020-11-17 09:49:40

物聯(lián)網(wǎng)

2022-01-04 19:28:05

VMware云端虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲久草 | 涩色视频在线观看 | 日韩精品免费看 | 狠狠做深爱婷婷综合一区 | 中文字幕综合在线 | 中文字幕1区 | 久久99精品视频 | 国产一区二区在线免费 | 一区二区三区四区在线 | 久久国产精品免费一区二区三区 | 中文字幕一区二区三区精彩视频 | 97久久精品午夜一区二区 | 成人不卡 | 国产精品久久久久一区二区三区 | 亚洲精品一区二区三区在线 | 国产乱码精品一区二区三区五月婷 | 日韩在线精品 | 成人免费淫片aa视频免费 | 91精品一区二区三区久久久久 | 成人免费视频网站在线观看 | 成人欧美一区二区三区在线播放 | 天天爱天天操 | 欧美一区二区三区在线观看 | 国产va| 国产精品一区二 | 欧美精品一区二区三区一线天视频 | 精久久久 | 日韩欧美在线观看视频 | 日韩在线观看中文字幕 | 亚洲五码在线 | 一区二区三区在线看 | 成人精品一区二区三区中文字幕 | 亚洲人成人一区二区在线观看 | 黄色在线观看国产 | www.av在线 | 中文字幕1区2区3区 日韩在线视频免费观看 | 国产精品久久久久一区二区三区 | 91精品国产一区二区三区 | 日韩av第一页 | 精品久久久久久久 | 一区二区三区精品视频 |