Python學習第006課--課後複習
阿新 • • 發佈:2018-12-10
今日是學習python的第006課,本節課主要學習了元組、字典和集合資料型別。 元組型別tuple 1、什麼是元組 元組就是一個不可變的列表
2、用途 用於存放多個值,當存放的多個值只有讀沒有改的需求時,用元組最合適
3、定義方式 在()內用逗號分隔開多個任意型別的值
t=(1,3.1,'aaa',(1,2,3),['a','b']) # t=tuple(1,3.1,'aaa',(1,2,3),['a','b'])
也可以用來轉換資料型別
res=tuple('hello') #字串 res=tuple({'x':1,'y':2}) #字典 print(res) #利用for迴圈將數值一個個的存入
常用操作和內建方法 優先掌握的操作 1、按索引取值(正向取+反向取):只能取
t=('a','b',1)
print(t[0])
#執行結果
a
t[0]=111
#執行結果
報錯,說明不能改值
2、切片(顧頭不顧尾,步長)
t=('h','e','l','l','o')
res=t[1:3]
print(res)
print(t)
#執行結果
('e', 'l')
('h', 'e', 'l', 'l', 'o')
3、長度
t=('h','e','l','l','o')
print(len(t))
#執行結果
5
4、成員運算in和not in
t=('h','e','l','l','o') print('h' in t) #執行結果 True
5、迴圈
t=('h','e','l','l','o')
for item in t:
print(item)
#執行結果
h
e
l
l
o
總結 1、存多個值 2、有序 3、不可變:不可變指的是數值對應的記憶體地址不可變
t=(1,'a',['x','y','z']) print(id(t[2])) print(id(t)) t[2][0]='X' print(t) print(id(t)) print(id(t[2])) #執行結果 2717545866248 2717546660704 (1, 'a', ['X', 'y', 'z']) 2717546660704 2717545866248
掌握的操作 1、index 查詢某一個值的索引
t=('a','b','a')
print(t.index('a'))
#執行結果
0
t.index('xxx')
#執行結果
報錯
print(t.count('a'))
2、count 統計某一個值有多少個
t=('a','b','a')
print(t.count('a'))
#執行結果
2
字典型別dict 1、用途 用來存放多個(不同種類)的值 2、定義方式 在{ }內用逗號分隔開多個key:value的元素,其中value可以時任意資料型別,而key的功能通常是用來描述value的,所以key通常是字串型別,但其實key必須是不可變的型別(int、float、str、tuple)
d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict{0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'}
print(d[(1, 2, 3)])
#執行結果
aaa
d1={[1,2,3]:'aaaaa'}
#執行結果
報錯,列表為不可hash型別(可變型別)
除了造字典還具有資料轉換功能
d=dict([('k1',1),('k2',2),('k3',3)])
print(d)
#執行結果
{'k1': 1, 'k2': 2, 'k3': 3}
#原理:dict先造一個空字典,然後利用for迴圈列表取存數值
===============================================
利用for迴圈轉換成字典
l=[('k1',1),('k2',2),('k3',3)]
d={}
for t in l: #t=('k1',1)
k,v=t
d[k]=v
print(d)
===============================================
d=dict(l)
print(d)
===============================================
d=dict(x=1,y=2,z=3)
print(d)
3、常用操作和內建方法 優先掌握的操作 1、按key存取值:可存可取
d={'x':1}
print(d['x'])
#執行結果
1
============================
d={'x':1}
print(id(d))
d['x']=1111 #更改了x的值
print(d) #執行結果:{'x': 1111}
print(id(d)) #值變了,id沒變,證明字典是可變型別
d['y']=2222 #新增了y的值
print(d) #執行結果:{'x': 1111, 'y': 2222}
2、長度len
d={'x':1,'y':2,'z':3}
print(len(d))
#執行結果
3
3、成員運算in和not in
d={'x':1,'y':2,'z':3}
print(1 in d)
print('x' in d)
#執行結果
False
True
證明字典的成員運算是按照key來的
4、刪除:根據key刪除
d={'x':1,'y':2,'z':3}
del d['y']
print(d)
res=d.pop('y')
print(d)
print(res) #返回刪除的y的值
res=d.popitem()
print(res) #隨機刪除,可證明字典是無序的
5、鍵keys(),值values(),鍵值對items()
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
print(d.keys())
print(list(d.keys())) #利用for迴圈取出列表
print(d.values())
print(list(d.values())) #利用for迴圈取出列表
print(d.items())
print(list(d.items())) #利用for迴圈取出列表
#執行結果
dict_keys(['name', 'age', 'sex', 'hobbies'])
['name', 'age', 'sex', 'hobbies']
dict_values(['egon', 18, 'male', [1, 2, 3]])
['egon', 18, 'male', [1, 2, 3]]
dict_items([('name', 'egon'), ('age', 18), ('sex', 'male'), ('hobbies', [1, 2, 3])])
[('name', 'egon'), ('age', 18), ('sex', 'male'), ('hobbies', [1, 2, 3])]
6、迴圈
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k in d.keys():
print(k)
#執行結果
name
age
sex
hobbies
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k in d: #不加.keys就是預設取key
print(k)
#執行結果
name
age
sex
hobbies
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for v in d.values():
print(v)
#執行結果
egon
18
male
[1, 2, 3]
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k,v in d.items(): #k,v=('name', 'egon')
print(k,v)
#執行結果
name egon
age 18
sex male
hobbies [1, 2, 3]
該型別總結 1、存多個值 2、無序 3、可變
需要掌握的操作 1、get 如果目標值不存在,用get取值也不會報錯
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
v=d.get('name')
print(v)
#執行結果
egon
2、update 更新字典,老字典內沒有的數值就新增,老字典內有的數值就改變,以新字典為準
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
d.update({'x':1,'name':"EGON"})
print(d)
3、fromkeys 需求是快速新造出一個字典,value的初始值全都為None,而key是來自於一個列表