基本資料型別常用操作及內建方法 —(list\tuple\dict)
阿新 • • 發佈:2020-12-23
目錄
- 列表型別
- 元組型別
- 字典型別
列表型別
列表用途:
列表(list) 按照位置存放多個型別的值
定義方式:
在[]內用逗號分隔開多個任意型別的值
l = [111,222,333,'xxx',[11,111,2]] # l =list(...)
資料型別轉換
把可迭代的型別轉換成列表,可以被for迴圈遍歷的型別就是可迭代型別、
res = list ('hello ')
print(res)
>>>['h', 'e', 'l', 'l', 'o', ' ']
res= list({"k1":111,"k2":222})
print(res)
>>>['k1', 'k2']
操作方法
1.按索引存取值(正向存取+反向存取):即可存也可以取
取根據索引取值,存是指的覆蓋掉原來索引對應的記憶體地址
l=[111,222,3333]
l[0]=6666 #
# l[3]=7777 #列表索引不能超出範圍 否則報錯
print(l)
# >>>[6666, 222, 3333]
2.切片
根據索引切片
l=[11,22,33,44,55,66,77]
l1=l[0:6:2] #起始位置、終點位置、步長
print(l)
print(l1)
>>>[11, 22, 33, 44, 55, 66, 77]
>>>[11, 33, 55]
切片拷貝是輸入淺拷貝
3.長度
l=[11,22,33,44,55,66,77]
print(len(l))
>>>7
4.成員運算in 和 not in
print(111 in ["aaa",111,2222])
>>>True
5.迴圈
l=[11,22,33,44,55,66,77]
for x in l:
print(x)
# >>>從第一個索引開始迴圈一遍就賦值給x 一直迴圈到最後一個元素
for i,x in enumerate(l):
print(i,x)
# >>>0 11
# >>>1 22
# >>>...
#for 賦值變數名 in enumerate (list):
#可以每個值迴圈前面顯示索引
6.列表(list) .方法
6.1 del 刪除也是根據索引
l=[11,22,33,44,55,66,77]
del l[0]
print(l)
# >>>[22, 33, 44, 55, 66, 77]
6.2 list.remove 指定元素刪除
l=[11,22,33,44,55,66,77]
l.remove(77)
print(l)
>>>[11, 22, 33, 44, 55, 66]
6.3 list.pop 根據索引刪除
l=[11,22,33,44,55,66,77]
print(l.pop(0))
>>>11
# 對比上面兩個pop有返回值 del 和 remove沒有返回值
6.5 list.append 追加 列表末尾追加新的元素
l=[11,22,33,44,55,66,77]
# l.append(值)
print(l.append(88))
>>>None #無返回值
print(l)
>>>[11, 22, 33, 44, 55, 66, 77, 88]
6.6 list.insert 插入 根據索引追加到指定位置前
l=[11,22,33,44,55,66,77] #無返回值
l.insert(1,"aa")
print(l)
>>>[11, 'aa', 22, 33, 44, 55, 66, 77]
7.列表(list) .方法 追加
7.1 list.copy()
對應元組6.2
# 拷貝的都是索引 和對應的記憶體地址 所以淺層拷貝雙方不可變型別一方變一方沒有影響,但是拷貝的包含可變型別,那麼當深層的可變型別發生變化,拷貝雙方一起改變
l=[11,22,33,44,33,33,55]
new_l = l.copy() # new_l = l[:]
print(l)
print(new_l)
>>>[11, 22, 33, 44, 33, 33, 55]
>>>[11, 22, 33, 44, 33, 33, 55]
7.2list.index 查詢索引
對應元組6.1
l=[11,22,33,44,33,33,55]
print(l.index(55))
>>>6
7.2 list.clear() 清空列表
# l=[11,22,33,44,33,33,55]
l.clear()
print(l)
>>>[]
7.3 list.exten() 迴圈加值
l=[11,22,33,44,55,33,33,33]
# l.extend() 能被for迴圈都可以 新增多個值
# l.extend("hello")
# print(l)
# >>>[11, 22, 33, 44, 55, 33, 33, 33, 'h', 'e', 'l', 'l', 'o']
# l.extend([1,2,3])
# print(l)
# >>>[11, 22, 33, 44, 55, 33, 33, 33, 1, 2, 3]
l.extend([[1,2],3])
print(l)
>>>[11, 22, 33, 44, 55, 33, 33, 33, [1, 2], 3]
7.5 list.reverse() 倒序排列
l=[1,2,3,4,5,6,7]
l.reverse()
print(l)
>>>[7, 6, 5, 4, 3, 2, 1]
# 不是很靠譜的倒序排列 原因如下
l=[11,22,33,44,55,33,33,33]
l.reverse()
print(l)
## >>>[33, 33, 33, 55, 44, 33, 22, 11]
7.6 list.sort()排序
l=[11,22,33,44,55,33,33,33]
l.sort(reverse=True)
print(l)
# # >>>[55, 44, 33, 33, 33, 33, 22, 11]
# l.sort()
# print(l)
# # >>>[11, 22, 33, 33, 33, 33, 44, 55]
列表(list)總結
# 存一個值or存多個值
# 多個值
# 有序or無序
# 有序
# 可變or不可變(1、可變:值變,id不變。可變==不可hash 2、不可變:值變,id就變。不可變==可hash)
# 可變
元組型別
元組用途:
元組(tuple) 就相當於一種不可變的列表,所以說元組也是按照位置存放多個任意型別的元素
定義方式:
在()內用逗號分隔開多個任意型別的元素
t=(1,2.1,"william",["lili",1,2.1],(2,2.1))
print(type(t))
>>>class 'tuple'
注意:如果元組內只有一個元素,必須用逗號分割
t=(1,)
print(type(t))
資料型別轉換
tuple 轉換可迭代的型別
操作方法*****
1.按索引取值(正向取+反向取)
1、按索引取值(正向取+反向取):只能取
t=(11,22,33)
print(t[0]) #正向取
# >>>11
print(t[-1]) #反向取
# >>>33
2.切片
2、切片(顧頭不顧尾,步長)
t=(11,22,33,44,55)
print(t[0:4:2])
# >>>(11, 33)
3.長度
3、長度
t=(11,22,33,44,55,66,77,88)
print(len(t))
# >>>8
4.成員運算in和not in
4、成員運算in 和not in
t=(11,22,33,44,55,66,77,88)
print((11) in t)
# >>>True
5.迴圈
5、迴圈
6. 元組.方法
6.1 .count() # 查詢元組內元素存在的數量
t=(11,11.33,"xxx","xxx","xxx",[22,33])
print(t.count("xxx"))
# >>>3
6.2 .index() #查詢對應的索引值
t=(11,11.33,"xxx","xxx","xxx",[22,33])
print(t.index("xxx"))
# >>>2
print(t.index([22,33]))
# >>>5
元組(tuple)型別總結
# 存一個值or存多個值
# 多個值
# 有序or無序
# 有序
# 可變or不可變(1、可變:值變,id不變。可變==不可hash 2、不可變:值變,id就變。不可變==可hash)
# 不可變
字典型別
字典用途:
字典dict 按照key:value的方式存放多個值,其中key對value應該由描述性的效果
定義方式:
{}內用逗號分隔開多個元素,每個元素都是key:value的組合,其中value可以是任意值,但是key必須是不可變型別,通常是字串型別
否則key用了可變型別就會報錯
資料型別轉換
# res=dict([("name",'egon'),["age",18],['gender',"male"]])
# print(res)
# >>>{'name': 'egon', 'age': 18, 'gender': 'male'}
# res = dict (a=1,b=2,c=3)
# print(res)
# >>>{'a': 1, 'b': 2, 'c': 3}
操作方法
1.按key存取值:可存可取
字典可根據不存在的key 新增key:value
d={"k1":111,'k2':222}
print(d['k1'])
>>>111
d['k1']=6666
d['k3']=6666
print(d)
>>>{'k1': 6666, 'k2': 222, 'k3': 6666}
2.長度
d={"k1":111,'k2':222}
print(len(d))
>>>2
3.成員運算in和not in
判斷的都是key
# d={"name":"egon",'age':18}
# print("name" in d)
4.鍵keys(),值values(),鍵值對items()
# d={"name":"egon",'age':18,"gender":"male"}
# print(d.keys())
# print(d.values())
# print(d.items())
>>>