3.4.4字典_刪除
(1)pop()
可以指定鍵名進行刪除,並且可以返回刪除的數據。如果沒有這個鍵,則報錯
(2)popitem()
用來刪除鍵值對,從末尾刪除數據,並且可以返回刪除的數據
(3)del 和 del()
可以指定鍵名進行刪除,也可直接刪除字典
(4)clear()
字典名.clear()可以清空字典,得到一個空字典,返回None
3.4.5字典常用操作
(1)len():測量字典中鍵值對的個數
(2)keys:字典名.keys()
返回一個包含字典所有鍵名的列表
(3)values:字典名.values()
返回一個包含字典所有值的列表
(4)items:字典名.items()
返回一個包含所有(鍵,值)元組的列表
(5)has_key (注意:在python3中沒有這個方法了,python2中有)
dict1.has_key(key)如果key在字典中,返回True,否則返回False
3.4.6字典的遍歷
(1)遍歷字典的key(鍵)
for temp in dict1.keys()
print(temp)
(2)遍歷字典的value(值)
for temp in dict1.values()
print(temp)
(3)遍歷字典的項(元素)
for temp in dict1.items()
print(temp)
(4)遍歷字典的鍵值對
for temp in dict1.items()
print("%s:%s"%(temp[0],temp[1]))
Or:
for key,value in dict1.items()
print(key)
print(value) #注:此處的key和value可以是其它字母
(5)實現帶下標索引的遍歷
chars = ['a', 'b', 'c', 'd']
i = 0
for chr in chars:
print("%d %s"%(i, chr))
i += 1
Or:
chars = ['a', 'b', 'c', 'd']
for i, chr in enumerate(chars):
print i, chr
3.4.7字典推導式
# 需求:1:1,2:4,3:9....
dict1 = {i:i ** 2 for i in range(10)}
print(dict1)
字典推導式應用:
①將兩個列表合併成一個字典☆☆☆
list1 = ['name','age']
list2 = ['gui','30']
dict1 = {list1[i]:list2[i] for i in range(len(list1))}
print(dict1)
②將一個字典拆成兩個列表
dict1 = {'name':'gui','age':18}
key_list = []
val_list =[]
for key,value in dict1.items():
key_list.append(key)
val_list.append(value)
print(key_list)
print(val_list)
3.5元組
元組與列表類似,但不同之處是元組中的元素是不可以改變的;若元組中套有列表或者字典,則套的列表或字典中的數據是可以修改的。元組用小括號。
例:
t3 = (1,2,[10,20,30])
t3[2][1] = 200
print(t3)
注意:創建元組時,如果元組中只有一個數據,還想要類型是元組,必須在數據後加逗號
3.5.1訪問元組
通過下標就可以訪問
3.5.2元組的內置函數index和count
用法和列表中相同
3.6 集合
注意:集合中的元素不能是可變數據類型,即:集合中的元素不能是列表、字典、集合
集合不支持下標,是無序的。用{}
作用:列表去重☆☆☆
例:
list1= [1,2,3,1,2]
print(list(set(list1)))
#對list1進行去重
3.6.1創建集合set()
(1)手動創建:set = {1,2,3}
(2)用set方法創建(創建空集合時僅能用此方法)
set1 = set()
3.6.2集合添加數據
(1)add():一次添加一個數據
set1.add(100)
(2)update()添加多個數據,參數是一個列表
set1.update([1000,2000,3333])
3.6.3集合刪除數據
(1)remove() 沒有就報錯
set1.remove(1000)
(2)pop()
用pop刪除數據,刪除的是第一個數據,而且會返回刪除的數據
set1.pop(2000)
(3)discard()
刪除指定數據,如果沒有這個數據,不做任何事
set1.discard(3333)
(4)del
3.6.4集合推導式
set2 = {i for i in range(10) if i%2 == 0}
print(set2)
3.6.5集合運算
(1)交集:&
(2)並集:| 包含所有不重複的數據
(3)差集:- 取減號前面的集合有的數據後面沒有的數據
3.7拆包形式
(1)用for遍歷
dict1 = {'name': 'python', 'age': 28}
for key,value in dict1.items():
print(key)
print(value)
(2)用變量賦值
s1, s2 = dict1.popitem()
print(s1)
print(s2)
d1, d2 = dict1
print(d1)
print(d2)
print(dict1[d1])
print(dict1[d2])
3.8公共方法
4.函數
4.1自定義函數
(1)定義函數的語法:
def 函數名(參數):
命令
(2)調用函數的語法:
函數名()
4.2函數的參數
(1)參數
參數分爲形參和實參
函數定義時候寫的參數是形參(形式上存在的)
函數調用的時候書寫的參數是實參(實際真實存在的參數)
(2)注意
注意個數(定義和調用個數相等); 注意順序(傳參要一致) -- 位置參數
一個參數只能接收一個值
參數定義順序:位置參數——默認參數——不定長參數
4.3函數的返回值
(1)想要獲得函數的返回值,用return關鍵字
return的作用:①返回值②會打斷程序的執行
如果有多個返回值,會以元組的方式返回
(2)多個返回值:
例如:
def func1():
return 1+1,2+2 #多個返回值時必須是這樣的格式:return 值1,值2
num1,num2 = func1()
print(num1)
print(num2)
4.4四種函數的類型
(1)沒有參數,沒有返回值
(1)沒有參數,有返回值
(1)有參數,沒有返回值
(1)有參數,有返回值
4.5函數關鍵字參數
關鍵字參數的概念僅僅針對函數的調用
關鍵字參數不受位置(順序)的限制
例如:
def func1(name, age):
print(name)
print(age)
func1(name='python', age=28) # name和age不能添加引號
注意:位置參數和關鍵字參數可以混用,但是關鍵字參數要放在位置參數的後面
如:func1('python',age=2)
只要用了關鍵字參數,以後針對這個參數傳值就必須是關鍵字形式傳遞
不需要注意傳值的參數順序
如果關鍵字傳值,程序直接能觀察出鍵和值的對應關係