前言
繼續更新,可以通過 www.readwithu.com/ 來看之前的文章。
目錄
一、List(列表)
Python 內建的一種資料型別是列表:list。 list 是一種有序的集合,可以隨時新增和刪除其中的元素。
1、建立 List(列表)
建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可,且列表的資料項不需要具有相同的型別
list1=['兩點水','twowter','liangdianshui',123]複製程式碼
2、訪問 List(列表)中的值
使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式擷取字元
list1=['兩點水','twowter','liangdianshui',123]
# 通過索引來訪問列表
print(list1[2])
# 通過方括號的形式來擷取列表中的資料
print(list1[0:2])複製程式碼
輸出的結果:
3、更新 List(列表)
可以通過索引對列表的資料項進行修改或更新,也可以使用 append() 方法來新增列表項。
list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 通過索引對列表的資料項進行修改或更新
list1[2]=456
print(list1)
# 使用 append() 方法來新增列表項
list1.append('hello');
print(list1)複製程式碼
輸出的結果:
4、刪除 List(列表)
使用 del 語句來刪除列表的的元素
list1=['兩點水','twowter','liangdianshui',123]
print(list1)
# 使用 del 語句來刪除列表的的元素
del list1[3]
print(list1)複製程式碼
輸出的結果:
5、List(列表)運算子
列表對 + 和 的操作符與字串相似。+ 號用於組合列表, 號用於重複列表。
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 | 迭代 |
6、List (列表)函式&方法
函式&方法 | 描述 |
---|---|
cmp(list1, list2) | 比較兩個列表的元素 |
len(list) | 列表元素個數 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 將元組轉換為列表 |
list.append(obj) | 在列表末尾新增新的物件 |
list.count(obj) | 統計某個元素在列表中出現的次數 |
list.extend(seq) | 在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表) |
list.index(obj) | 從列表中找出某個值第一個匹配項的索引位置 |
list.insert(index, obj) | 將物件插入列表 |
list.pop(obj=list[-1]) | 移除列表中的一個元素(預設最後一個元素),並且返回該元素的值 |
list.reverse() | 反向列表中元素 |
list.sort([func]) | 對原列表進行排序 |
7、例項
最後通過一個例子來熟悉瞭解 List 的操作
例子:
#-*-coding:utf-8-*-
#-----------------------list的使用----------------------------------
# 1.一個產品,需要列出產品的使用者,這時候就可以使用一個 list 來表示
user=['liangdianshui','twowater','兩點水']
print('1.產品使用者')
print(user)
# 2.如果需要統計有多少個使用者,這時候 len() 函式可以獲的 list 裡元素的個數
len(user)
print('\n2.統計有多少個使用者')
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 級別的學生,需要放在第一位,可以通過 insert 方法插入到指定的位置
# 注意:插入資料的時候注意是否越界,索引不能超過 len(user)-1
user.insert(0,'VIP使用者')
print('\n5.指定位置新增使用者')
print(user)
# 6.突然發現之前弄錯了,“茵茵”就是'VIP使用者',因此,需要刪除“茵茵”;pop() 刪除 list 末尾的元素
user.pop()
print('\n6.刪除末尾使用者')
print(user)
# 7.過了一段時間,使用者“liangdianshui”不玩這個產品,刪除了賬號
# 因此需要要刪除指定位置的元素,用pop(i)方法,其中i是索引位置
user.pop(1)
print('\n7.刪除指定位置的list元素')
print(user)
# 8.使用者“兩點水”想修改自己的暱稱了
user[2]='三點水'
print('\n8.把某個元素替換成別的元素')
print(user)
# 9.單單儲存使用者暱稱好像不夠好,最好把賬號也放進去
# 這裡賬號是整數型別,跟暱稱的字串型別不同,不過 list 裡面的元素的資料型別是可以不同的
# 而且 list 元素也可以是另一個 list
newUser=[['VIP使用者',11111],['twowater',22222],['三點水',33333]]
print('\n9.不同元素型別的list資料')
print(newUser)複製程式碼
二、tuple(元組)
另一種有序列表叫元組:tuple 。tuple 和 list 非常類似,但是 tuple 一旦初始化就不能修改。那麼不能修改是指什麼意思呢?
tuple 不可變是指當你建立了 tuple 時候,它就不能改變了,也就是說它也沒有 append(),insert() 這樣的方法,但它也有獲取某個索引值的方法,但是不能賦值。那麼為什麼要有 tuple 呢?那是因為 tuple 是不可變的,所以程式碼更安全。所以建議能用 tuple 代替 list 就儘量用 tuple 。
1、建立 tuple(元祖)
元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。
tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456複製程式碼
建立空元組
tuple3=()複製程式碼
元組中只包含一個元素時,需要在元素後面新增逗號
tuple4=(123,)複製程式碼
如果不加逗號,建立出來的就不是 tuple (元組),而是指 123
這個數了,這是因為括號 ()既可以表示 tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,Python 規定,這種情況下,按小括號進行計算,計算結果自然是 123
。具體看下圖 tuple4 和 tuple5 的輸出值
2、tuple(元組)的索引
元組下標索引從0開始,可以進行擷取,組合等。
3、訪問 tuple (元組)
tuple(元組)可以使用下標索引來訪問元組中的值
#-*-coding:utf-8-*-
tuple1=('兩點水','twowter','liangdianshui',123,456)
tuple2='兩點水','twowter','liangdianshui',123,456
print(tuple1[1])
print(tuple2[0])複製程式碼
輸出的結果:
4、修改 tuple (元組)
上面不是花了一大段來說 tuple 是不可變的嗎?這裡怎麼又來修改 tuple (元組) 了。那是因為元組中的元素值是不允許修改的,但我們可以對元組進行連線組合,還有通過修改其他列表的值從而影響 tuple 的值。
具體看下面的這個例子:
#-*-coding:utf-8-*-
list1=[123,456]
tuple1=('兩點水','twowater','liangdianshui',list1)
print(tuple1)
list1[0]=789
list1[1]=100
print(tuple1)複製程式碼
輸出的結果:
('兩點水', 'twowater', 'liangdianshui', [123, 456])
('兩點水', 'twowater', 'liangdianshui', [789, 100])複製程式碼
可以看到,兩次輸出的 tuple 值是變了的。我們看看 tuple1 的儲存是怎樣的。
可以看到,tuple1 有四個元素,最後一個元素是一個 List ,List 列表裡有兩個元素,當我們把 List 列表中的兩個元素 124
和 456
修改為 789
和 100
的時候,從輸出來的 tuple1 的值來看,好像確實是改變了,但其實變的不是 tuple 的元素,而是 list 的元素。tuple 一開始指向的 list 並沒有改成別的 list,所以,tuple 所謂的“不變”是說,tuple 的每個元素,指向永遠不變。注意是 tupe1 中的第四個元素還是指向原來的 list ,是沒有變的。
5、刪除 tuple (元組)
tuple 元組中的元素值是不允許刪除的,但我們可以使用 del 語句來刪除整個元組
#-*-coding:utf-8-*-
tuple1=('兩點水','twowter','liangdianshui',[123,456])
print(tuple1)
del tuple1複製程式碼
6、tuple (元組)運算子
與字串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和複製,運算後會生成一個新的元組。
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 | 迭代 |
7、元組內建函式
方法 | 描述 |
---|---|
cmp(tuple1, tuple2) | 比較兩個元組元素 |
len(tuple) | 計算元組元素個數 |
max(tuple) | 返回元組中元素最大值 |
min(tuple) | 返回元組中元素最小值 |
tuple(seq) | 將列表轉換為元組 |