1.元組
1>介紹,Python序列之一,與列表相似,但元素不可變(不可增刪改)
2>聲明方法
tup1=(1,2,3);
3>修改
tup1[0]=2 #非法,報錯
4>刪除
del tup1[0]
#TypeError: 'tuple' object doesn't support item deletion
del tup1
#可以刪除整個元組引用
5>內置函數
tuple(seq) 將列表轉化爲元組
2.字典
1>介紹:同Java的Map,以鍵值對存儲數據
注:鍵是唯一的,且類型必須爲不可變數據類型
2>聲明方法:dic1={key1:value1,key2:value2}
3>訪問(通過鍵)
dic1={'name':'張三','age':18}
print(dic1['name'])
4>修改
dic1['name']='李四'
5>內置函數
print(dic1.copy())#複製列表
print(dic1.fromkeys(('name','age'),10)) #key爲序列的各個元素,值爲10
print(dic1.get('ss')) #獲取key爲name的值,鍵不存在,返回None
print(dic1.keys()) #獲取所有的key
print(dic1.values()) #獲取所有的value
print(dic1.items()) #獲取集合所有的元組數組
dic1.popitem() #刪除末尾鍵值對
dic1.setdefault("gender",1)#添加鍵值對,值不給默認爲None
dic2={}
dic2.update(dic1) #將dic1的值更新到dic2中
print(dic1,dic2)
3.集合
1>介紹:無序,唯一的序列
2>聲明: set([1,2,3]) 或{1,2,3}
注:set() 爲空集合,{}代表空字典
3>
set1=set([1,2,3,4])
set2={3,4,5,6}
print(set1.union(set2)) #並集
print(set1.intersection(set2)) #交集
print(set1.difference(set2)) #差集
print(set1.symmetric_difference(set2)) #對稱差集
#另一種寫法
print(set1|set2) #並集
print(set1&set2) #交集
print(set1-set2) #差集
print(set1^set2) #對稱差集
4.函數
函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段
1>語法:
def 函數名(參數列表):
函數體
return XXX
2>參數類型:
def calc(x,y=None,*numbers,*,city,job,**kw):
print(numbers)
x 必需參數 必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。
y 默認參數 調用函數時,如果沒有傳遞參數,則會使用默認參數
*args 不定長參數 可以傳0或任意個參數
**kw 關鍵字參數 可以傳0或任意個帶參數名的參數
city、job 命名關鍵字參數 限制參數名的關鍵字參數,只接收city和job作爲關鍵字參數
def person(name, age, *, city, job):
print(name, age, city, job)
#和關鍵字參數**kw不同,命名關鍵字參數需要一個特殊分隔符*,*後面的參數被視爲命名關鍵字參數
3>參數傳遞
Python都是對象的引用,所以不分值傳遞和引用傳遞,根據參數類型可變和不可變。
可變類型:fun(la) la值發生改變
不可變類型:fun(a) a值不發生改變
4>匿名函數 lambda
語法:
lambda [arg1 [,arg2,.....argn]]:expression
a= lambda a,b:a+b
print(a(1,2))