1. 程式人生 > >Python學習第006課--課後複習

Python學習第006課--課後複習

今日是學習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是來自於一個列表