草根學(xué)Python(三) List 和 Tuple

前言

繼續(xù)更新旗芬,可以通過 https://www.readwithu.com/ 來看之前的文章疮丛。

目錄

草根學(xué)Python(三) List 和 Tuple

一辆它、List(列表)

Python 內(nèi)置的一種數(shù)據(jù)類型是列表:list娩井。 list 是一種有序的集合似袁,可以隨時添加和刪除其中的元素咐刨。

1定鸟、創(chuàng)建 List(列表)

創(chuàng)建一個列表著瓶,只要把逗號分隔的不同的數(shù)據(jù)項(xiàng)使用方括號括起來即可,且列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型

list1=['兩點(diǎn)水','twowter','liangdianshui',123]

2、訪問 List(列表)中的值

使用下標(biāo)索引來訪問列表中的值沸久,同樣你也可以使用方括號的形式截取字符

list1=['兩點(diǎn)水','twowter','liangdianshui',123]
# 通過索引來訪問列表
print(list1[2])
# 通過方括號的形式來截取列表中的數(shù)據(jù)
print(list1[0:2])

輸出的結(jié)果:

訪問 List(列表)中的值

3卷胯、更新 List(列表)

可以通過索引對列表的數(shù)據(jù)項(xiàng)進(jìn)行修改或更新威酒,也可以使用 append() 方法來添加列表項(xiàng)。

list1=['兩點(diǎn)水','twowter','liangdianshui',123]
print(list1)
# 通過索引對列表的數(shù)據(jù)項(xiàng)進(jìn)行修改或更新
list1[2]=456
print(list1)
# 使用 append() 方法來添加列表項(xiàng)
list1.append('hello');
print(list1)

輸出的結(jié)果:

更新 List(列表)

4、刪除 List(列表)

使用 del 語句來刪除列表的的元素

list1=['兩點(diǎn)水','twowter','liangdianshui',123]
print(list1)
# 使用 del 語句來刪除列表的的元素
del list1[3]
print(list1)

輸出的結(jié)果:

刪除 List(列表)

5箫津、List(列表)運(yùn)算符

列表對 + 和 * 的操作符與字符串相似吓著。+ 號用于組合列表,* 號用于重復(fù)列表暖眼。

Python 表達(dá)式 結(jié)果 描述
len([1, 2, 3]) 3 計(jì)算元素個數(shù)
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 組合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 復(fù)制
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x, 1 2 3 迭代

6纺裁、List (列表)函數(shù)&方法

函數(shù)&方法 描述
cmp(list1, list2) 比較兩個列表的元素
len(list) 列表元素個數(shù)
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 將元組轉(zhuǎn)換為列表
list.append(obj) 在列表末尾添加新的對象
list.count(obj) 統(tǒng)計(jì)某個元素在列表中出現(xiàn)的次數(shù)
list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值(用新列表擴(kuò)展原來的列表)
list.index(obj) 從列表中找出某個值第一個匹配項(xiàng)的索引位置
list.insert(index, obj) 將對象插入列表
list.pop(obj=list[-1]) 移除列表中的一個元素(默認(rèn)最后一個元素)欺缘,并且返回該元素的值
list.reverse() 反向列表中元素
list.sort([func]) 對原列表進(jìn)行排序

7谚殊、實(shí)例

最后通過一個例子來熟悉了解 List 的操作

例子:

#-*-coding:utf-8-*-
#-----------------------list的使用----------------------------------

# 1.一個產(chǎn)品,需要列出產(chǎn)品的用戶丛肢,這時候就可以使用一個 list 來表示
user=['liangdianshui','twowater','兩點(diǎn)水']
print('1.產(chǎn)品用戶')
print(user)

# 2.如果需要統(tǒng)計(jì)有多少個用戶,這時候 len() 函數(shù)可以獲的 list 里元素的個數(shù)
len(user)
print('\n2.統(tǒng)計(jì)有多少個用戶')
print(len(user))

# 3.此時穆刻,如果需要知道具體的用戶呢杠步?可以用過索引來訪問 list 中每一個位置的元素,索引是0從開始的
print('\n3.查看具體的用戶')
print(user[0]+','+user[1]+','+user[2])

# 4.突然來了一個新的用戶朵锣,這時我們需要在原有的 list 末尾加一個用戶
user.append('茵茵')
print('\n4.在末尾添加新用戶')
print(user)

# 5.又新增了一個用戶甸私,可是這個用戶是 VIP 級別的學(xué)生,需要放在第一位泣刹,可以通過 insert 方法插入到指定的位置
# 注意:插入數(shù)據(jù)的時候注意是否越界犀被,索引不能超過 len(user)-1
user.insert(0,'VIP用戶')
print('\n5.指定位置添加用戶')
print(user)

# 6.突然發(fā)現(xiàn)之前弄錯了寡键,“茵茵”就是'VIP用戶',因此员舵,需要刪除“茵茵”藕畔;pop() 刪除 list 末尾的元素
user.pop()
print('\n6.刪除末尾用戶')
print(user)

# 7.過了一段時間,用戶“l(fā)iangdianshui”不玩這個產(chǎn)品韭邓,刪除了賬號
# 因此需要要刪除指定位置的元素溶弟,用pop(i)方法,其中i是索引位置
user.pop(1)
print('\n7.刪除指定位置的list元素')
print(user)

# 8.用戶“兩點(diǎn)水”想修改自己的昵稱了
user[2]='三點(diǎn)水'
print('\n8.把某個元素替換成別的元素')
print(user)

# 9.單單保存用戶昵稱好像不夠好鸭你,最好把賬號也放進(jìn)去
# 這里賬號是整數(shù)類型,跟昵稱的字符串類型不同袜茧,不過 list 里面的元素的數(shù)據(jù)類型是可以不同的
# 而且 list 元素也可以是另一個 list
newUser=[['VIP用戶',11111],['twowater',22222],['三點(diǎn)水',33333]]
print('\n9.不同元素類型的list數(shù)據(jù)')
print(newUser)

list的使用

二瓣窄、tuple(元組)

另一種有序列表叫元組:tuple 俺夕。tuple 和 list 非常類似贱鄙,但是 tuple 一旦初始化就不能修改。那么不能修改是指什么意思呢映九?

tuple 不可變是指當(dāng)你創(chuàng)建了 tuple 時候瞎颗,它就不能改變了,也就是說它也沒有 append()引有,insert() 這樣的方法倦逐,但它也有獲取某個索引值的方法檬姥,但是不能賦值。那么為什么要有 tuple 呢抒巢?那是因?yàn)?tuple 是不可變的秉犹,所以代碼更安全。所以建議能用 tuple 代替 list 就盡量用 tuple 悦陋。

1筑辨、創(chuàng)建 tuple(元祖)

元組創(chuàng)建很簡單,只需要在括號中添加元素暮现,并使用逗號隔開即可。

tuple1=('兩點(diǎn)水','twowter','liangdianshui',123,456)
tuple2='兩點(diǎn)水','twowter','liangdianshui',123,456

創(chuàng)建空元組

tuple3=()

元組中只包含一個元素時拍顷,需要在元素后面添加逗號

tuple4=(123,)

如果不加逗號昔案,創(chuàng)建出來的就不是 tuple (元組)电媳,而是指 123 這個數(shù)了,這是因?yàn)槔ㄌ?()既可以表示 tuple匾乓,又可以表示數(shù)學(xué)公式中的小括號拼缝,這就產(chǎn)生了歧義,因此铃辖,Python 規(guī)定猪叙,這種情況下,按小括號進(jìn)行計(jì)算犬第,計(jì)算結(jié)果自然是 123 芒帕。具體看下圖 tuple4 和 tuple5 的輸出值

創(chuàng)建tuple

2背蟆、tuple(元組)的索引

元組下標(biāo)索引從0開始,可以進(jìn)行截取志珍,組合等垛叨。

3、訪問 tuple (元組)

tuple(元組)可以使用下標(biāo)索引來訪問元組中的值

#-*-coding:utf-8-*-

tuple1=('兩點(diǎn)水','twowter','liangdianshui',123,456)
tuple2='兩點(diǎn)水','twowter','liangdianshui',123,456

print(tuple1[1])
print(tuple2[0])

輸出的結(jié)果:

訪問 tuple

4喂击、修改 tuple (元組)

上面不是花了一大段來說 tuple 是不可變的嗎淤翔?這里怎么又來修改 tuple (元組) 了旁壮。那是因?yàn)樵M中的元素值是不允許修改的,但我們可以對元組進(jìn)行連接組合,還有通過修改其他列表的值從而影響 tuple 的值稚补。

具體看下面的這個例子:

#-*-coding:utf-8-*-
list1=[123,456]
tuple1=('兩點(diǎn)水','twowater','liangdianshui',list1)
print(tuple1)
list1[0]=789
list1[1]=100
print(tuple1)

輸出的結(jié)果:

('兩點(diǎn)水', 'twowater', 'liangdianshui', [123, 456])
('兩點(diǎn)水', 'twowater', 'liangdianshui', [789, 100])

可以看到齿坷,兩次輸出的 tuple 值是變了的睬棚。我們看看 tuple1 的存儲是怎樣的杜秸。

修改tuple流程圖

可以看到润绎,tuple1 有四個元素莉撇,最后一個元素是一個 List ,List 列表里有兩個元素其障,當(dāng)我們把 List 列表中的兩個元素 124456 修改為 789100 的時候涂佃,從輸出來的 tuple1 的值來看,好像確實(shí)是改變了汽抚,但其實(shí)變的不是 tuple 的元素伯病,而是 list 的元素殊橙。tuple 一開始指向的 list 并沒有改成別的 list,所以,tuple 所謂的“不變”是說膨蛮,tuple 的每個元素叠纹,指向永遠(yuǎn)不變。注意是 tupe1 中的第四個元素還是指向原來的 list 敞葛,是沒有變的誉察。

5、刪除 tuple (元組)

tuple 元組中的元素值是不允許刪除的惹谐,但我們可以使用 del 語句來刪除整個元組

#-*-coding:utf-8-*-

tuple1=('兩點(diǎn)水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1

6持偏、tuple (元組)運(yùn)算符

與字符串一樣氨肌,元組之間可以使用 + 號和 * 號進(jìn)行運(yùn)算鸿秆。這就意味著他們可以組合和復(fù)制,運(yùn)算后會生成一個新的元組怎囚。

Python 表達(dá)式 結(jié)果 描述
len((1, 2, 3)) 3 計(jì)算元素個數(shù)
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 連接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 復(fù)制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

7卿叽、元組內(nèi)置函數(shù)

方法 描述
cmp(tuple1, tuple2) 比較兩個元組元素
len(tuple) 計(jì)算元組元素個數(shù)
max(tuple) 返回元組中元素最大值
min(tuple) 返回元組中元素最小值
tuple(seq) 將列表轉(zhuǎn)換為元組
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恳守,隨后出現(xiàn)的幾起案子考婴,更是在濱河造成了極大的恐慌,老刑警劉巖催烘,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沥阱,死亡現(xiàn)場離奇詭異,居然都是意外死亡伊群,警方通過查閱死者的電腦和手機(jī)考杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舰始,“玉大人奔则,你說我怎么就攤上這事”挝纾” “怎么了易茬?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長及老。 經(jīng)常有香客問我抽莱,道長,這世上最難降的妖魔是什么骄恶? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任食铐,我火速辦了婚禮,結(jié)果婚禮上僧鲁,老公的妹妹穿的比我還像新娘虐呻。我一直安慰自己象泵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布斟叼。 她就那樣靜靜地躺著偶惠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朗涩。 梳的紋絲不亂的頭發(fā)上忽孽,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音谢床,去河邊找鬼兄一。 笑死,一個胖子當(dāng)著我的面吹牛识腿,可吹牛的內(nèi)容都是我干的出革。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼渡讼,長吁一口氣:“原來是場噩夢啊……” “哼骂束!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硝全,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤栖雾,失蹤者是張志新(化名)和其女友劉穎楞抡,沒想到半個月后伟众,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡召廷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年凳厢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竞慢。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡先紫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出筹煮,到底是詐尸還是另有隱情遮精,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布败潦,位于F島的核電站本冲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏劫扒。R本人自食惡果不足惜檬洞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沟饥。 院中可真熱鬧添怔,春花似錦湾戳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至性昭,卻和暖如春拦止,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糜颠。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工汹族, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人其兴。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓顶瞒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親元旬。 傳聞我的和親對象是個殘疾皇子榴徐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容