前言
繼續(xù)更新旗芬,可以通過 https://www.readwithu.com/ 來看之前的文章疮丛。
目錄
一辆它、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é)果:
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é)果:
4、刪除 List(列表)
使用 del 語句來刪除列表的的元素
list1=['兩點(diǎn)水','twowter','liangdianshui',123]
print(list1)
# 使用 del 語句來刪除列表的的元素
del list1[3]
print(list1)
輸出的結(jié)果:
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)
二瓣窄、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 的輸出值
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é)果:
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 的存儲是怎樣的杜秸。
可以看到润绎,tuple1 有四個元素莉撇,最后一個元素是一個 List ,List 列表里有兩個元素其障,當(dāng)我們把 List 列表中的兩個元素 124
和 456
修改為 789
和 100
的時候涂佃,從輸出來的 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)換為元組 |