python_day07_集合類型與字符編碼
一、集合
1.基本使用
(1)用途:關系運算、去重
(2)定義方式:{}內用逗號分開多個元素,每一個元素都必須是不可變(即可hash)類型
強調:
a.集合內的元素都必須是不可變(即可hash)類型
b.集合內的元素是無序的,並不能通過索引來取值
c.集合內的元素不能重復
s={1,3,"hello"} #s=set({1,3,"hello"})
print(type(s))
2.單純的用集合去重,需要註意的問題是
(1)去重的目標所包含的值必須都是為不可變類型
(2)去重的結果會打亂原來的順序
#names=["Namy","Brooke","Sauro","Luffy","Luffy","Brooke"]#s=set(names) #names=list(s) #print(names)
3.常用操作和內置方法
(1)優先掌握的操作
a.長度len
print(len(names))
b.成員運算in和not in
print("Luffy" in names)
*****重點:
當沒有集合的時候,取出兩個列表中都有的元素的方法:
names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"}
names2={""Luffy,"Brooke","Boss","Sun","Moon"}
names1=["Luffy","Namy","Brooke","Sauro","Boss","Boost"] names2=[""Luffy,"Brooke","Boss","Sun","Moon"] #list=[] #創建一個空列表 #for name in names1: #for循環把names1中的依次變量賦值給name # if name in names2: #判斷name是否在列表names2中 # print(name) # list.append(name) #把name添加進空列表list中#print(list)
當沒有集合的時候,取出兩個列表中的不同的部分思路跟上邊一樣,下邊是有集合之後的操作方法:
names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"} names2={""Luffy,"Brooke","Boss","Sun","Moon"} | 並集 #前後順序改變沒有任何影響 print(names1|names2) print(names1.union(names2)) & 交集 #前後順序改變沒有任何影響 print(names1&names2) print(names1.intersection(names2)) - 差集 #前後位置對調,結果不同 print(names1-names2) print(names2-names1) print(names1.difference(names2)) print(names2.difference(names1)) ^ 對稱差集 #前後順序改變不會改變結果 print(names1^names2) print(names2^names1) print(names1.symmetric_difference(names2)) == print(names1==names2) #False >,>= 父集 print(names1>names2) #False (names1包含names2) print(names1.issuperset(names2)) <,<= 子集(被包含的關系) print(names2<names1) #True
4.該類型總結
(1)存一個值或者多個值
可以存多個值,但是值必須都是不可變類型
(2)有序或者無序
集合是無序的
(3)可變或者不可變
set集合是可變類型
#s={1,2,3}
#print(id(s))
#s.add(4)
#print(s)
#print(id(s))
5.集合的去重
單純的用集合去重,需要註意的問題是
(1)去重的目標所包含的值必須都是不可變類型
(2)去重的結果會打亂原來的順序
stu_info=[
{‘name‘:‘namy‘,‘age‘:18,‘sex‘:‘female‘},
{‘name‘:‘luffy‘,‘age‘:18,‘sex‘:‘male‘},
{‘name‘:‘luffy‘,‘age‘:18,‘sex‘:‘male‘},
{‘name‘:‘brooke‘,‘age‘:999,‘sex‘:‘male‘},
{‘name‘:‘brooke‘,‘age‘:999,‘sex‘:‘female‘},
]
new_list=[]
for info in stu_info:
if info not in new_list:
new_info.append(info)
print(new_info)
python_day07_集合類型與字符編碼