Python 學習筆記 基本資料型別內建方法 之 序列型別
阿新 • • 發佈:2021-09-01
基本資料型別:
序列型別: | list,tuple,range |
優先掌握的操作:
- 按索引存取值(正向存取+反向存取):即可存也可以取
- 切片(顧頭不顧尾,步長)
- 長度
- 成員運算in和not in
- 追加
- 刪除
- 迴圈
列表 list
作用:按索引位置放置多個值
定義:[ ] 中括號內,每個元素間用逗號隔開
點選收起程式碼
l1 = [1,'a',[1,2]] # 本質:l1 = list([1,'a',[1,2]])
型別轉換:
但凡能夠被for迴圈遍歷的型別都可以當作引數傳給list()轉成列表型別,list()會跟for迴圈一樣遍歷出資料型別中包含的每一個元素然後放到列表中
list('hello') # 結果: ['h', 'e', 'l', 'l', 'o'] # 原理 等同與for迴圈 l1 = [] for x in 'hello': l1.append(x) # 結果: ['h', 'e', 'l', 'l', 'o'] # =================== list({"name":"jason","age":18}) # 結果:['name', 'age'] list((1,2,3)) # 結果:[1, 2, 3] list({1,2,3,4}) # 結果:[1, 2, 3, 4]
優先掌握:
1、按索引取值(正向存取+反向存取):即可以取也可以改
(程式碼隱藏)點選檢視程式碼
# 1、按索引取值(正向存取+反向存取):即可以取也可以改
# 例
l = [111, 'egon', 'hello']
# 正向取
res = l[0] # 111
# 反向取
res = l[-1] # hello
# 也可以取可以改:索引存在則修改對應的值
# 把l列表索引位置0的元素修改為222
l[0] = 222 # [222, 'egon', 'hello']
# 無論是取值操作還是賦值操作:索引不存在則報錯
2、切片(顧頭不顧尾,步長)
(程式碼隱藏)點選檢視程式碼
# 2、切片 # 【切片】是屬於copy行為 (顧頭不顧尾)索引的擴充套件應用 # 取值前三個 l = [111, 'egon', 'hello', 'a', 'b', 'c', 'd'] # 正向取值 x = l[0:3] # [111, 'egon', 'hello'] # 正向步長取值 步長 (2) x1 = l[0:5:2] # [111, 'hello', 'b'] 取索引位置 0 2 4 的值 # 把整個列表倒過來,反向取值 x2 = l[::-1] # ['d', 'c', 'b', 'a', 'hello', 'egon', 111] # 把列表切出來賦值給新列表 new_l = l[:] # 等同於淺拷貝一個列表給新列表new_l #####################################################
3、長度
(程式碼隱藏)點選檢視程式碼
# 3、長度
# 列表統計 len統計的是元素的個數
X = len([1, 2, 3]) # 3 3個元素
#####################################################
4、成員運算in和not in
(程式碼隱藏)點選檢視程式碼
# 4、成員運算in 和 not in
# 判斷aaa是否存在與列表
if 'aaa' in ['aaa', 1, 2]:
i = "yes"
else:
i = "no"
# 輸出結果 yes
######################################################
5、追加
(程式碼隱藏)點選檢視程式碼
# 5、往列表裡******新增*****值
# 5.1、追加
# (瞭解) append預設在列表最末端追加
# 例
l = [111, 'egon', 'hello']
l.append(1233) # [111, 'egon', 'hello', 1233]
l.append(4445) # [111, 'egon', 'hello', 1233, 4445]
#############
# 5.2、插入值
# insert按照指定索引位置插入值
# 例
l = [111, 'egon', 'hello']
l.insert(1, 2222) # [111, 2222, 'egon', 'hello']
# print(l)
#############
6、新增
(程式碼隱藏)點選檢視程式碼
# # 6、 新增
# # 往列表裡新增子列表
l = [111, 'egon', 'hello']
new_l = [1, 2, 3]
# l.append(new_l) # [111, 'egon', 'hello', [1, 2, 3]]
# # print(l)
####
# # 把新列表的值新增到現有列表內
# 實現程式碼
for itme in new_l:
l.append(itme) # [111, 'egon', 'hello', 1, 2, 3]
# print(l)
#####
# extend實現上述功能(推薦)
l.extend(new_l) # [111, 'egon', 'hello', 1, 2, 3]
l.extend('abc') # [111, 'egon', 'hello', 'a', 'b', 'c']
#########################################################
7、刪除
(程式碼隱藏)點選檢視程式碼
# 7、刪除
# 方式一:del通用的刪除方法,只是刪除沒有返回值,不支援賦值語法。
l = [111, 'egon', 'hello']
del l[1] # [111, 'hello']
######
# # 方式二:.pop是根據索引刪除,會返回刪除的值。
l = [111, 'egon', 'hello']
l.pop() # [111,'egon'] 預設刪除列表最後一個
l.pop(1) # [111,'hello']
# res = l.pop(1) # egon 返回刪除的值
######
# 方式三:.remove()回根據元素刪除,返回None
l = [111, 'egon', 'hello', ['a', 'b', 'c']]
l.remove(['a', 'b', 'c']) # [111, 'egon', 'hello']
#########################################################
8、迴圈
(程式碼隱藏)點選檢視程式碼
# 8、迴圈
l1 = [1, 'aaa', 'bbb']
for x in l1: # 把列表迴圈出單個元素輸出
# !!!!!!!!!!需要掌握!!!!!!!!!!!
l = [1, 'aaa', 'bbb', 'aaa', 'aaa']
############################
# 1、l.count() 查詢元素出現次數
res = l.count('aaa') # 輸出結果 3 表示在l列表裡出現3次
#############
# 2、l.index() 查詢元素索引位置,找不到元素程式就報錯
res = l.index('aaa') # 輸出結果 1 表示 'aaa' 在列表裡的索引是1
#############
# 3、l.clear() # 清空整個列表的元素,不能傳入值,填寫傳入值就報錯
l.clear() # 輸出結果 [] l列表為空,元素全部清楚
#############
# 4、l.reverse() 把列表反轉,不是排序行為
l.reverse() # 輸出結果 ['aaa', 'aaa', 'bbb', 'aaa', 1] 列表實現反轉
############
# 5、l.sort() 排序 只允許列表內元素為同種資料型別 才可使用此排序
# 預設把元素重小到大排,稱之為升序
l12 = [-1,-4,1,0]
# l12.sort() # [-4, -1, 0, 1] 把列表升序
l12.sort(reverse=True) # 輸出結果 [1, 0, -1, -4] 從大到小排序,設定為降序
# 瞭解:字串是可以比大小的,按照對應的位置的字元依次對比
# 字串是按照ASCI碼錶的先後順序區分大小。表內排在的字元越靠後越大。
##############
#瞭解: 列表型別也可以比大小,原理同字元一樣
# 兩個列表對比時,對於索引位置必須為同種資料型別,如果資料型別不同程式會報錯
l2 = [1,'aa','222']
l3 = [2,'dd','123']
print(l2 > l3) # 結果False
##########################################################
9 、補充
(程式碼隱藏)點選檢視程式碼
# 補充
# 1、佇列:first in first out
# FIFO,先進先出
# 模擬入隊操作
l4 = []
l4.append('first')
l4.append('second')
l4.append('third')
print(l4)
# # 模擬出隊操作
print(l4.pop(0))
print(l4.pop(0))
print(l4.pop(0))
# 輸出結果
# first
# second
# third
############
# 2、堆疊:last in first out
# LIFO 後進先出
# 模擬入棧
l4 = []
l4.append('first')
l4.append('second')
l4.append('third')
####
# 模擬出棧
print(l4.pop())
print(l4.pop())
print(l4.pop())
# 輸出結果
# third
# second
# first