python中创建集合的语句_Python 集合(set) 介绍
集合 set
集合是可變的容器
集合內的數據對象都是唯一的(不能重復多次的)
集合是無序的存儲結構,集合中的數據沒有先后關系
集合內的元素必須是不可變對象
集合是可迭代對象(可以用for等遍歷)
集合是相當于只有鍵,沒有值的字典(鍵則是集合的數據)
創建空集合:
set()
創建非空集合的字面值:
s = {1,2,3}
集合的構造函數:set
set() #創建一個空的集合對象(不能用{}來創建空集合)
set(iterable) #用可迭代對象創建一個新的集合對角
# 示例:
s = set()
s = {1,2,3,4}
s = set("ABC")
s = set("ABCABC") # s = {"A","B","C"}
s = set([1,0,3.14,0.618])
s = {1,2,[3,4],5} #報錯,集合內不能放列表和字典
s = {1,2,{3,4},5} #出錯集合是可變對象
集合的運算:
交集&,并集|,補集-,對稱補集^ , 子集< ,超集>
#& 運算符生成兩個集合的交集(兩個集合的共同部分)
s1 = {1,2,3}
s2= {2,3,4}
s3= s1 & s2 #s3={2,3}
#| 生成兩個集合的并集
s1 = {1,2,3}
s2= {2,3,4}
s3= s1 | s2 #s3 ={1,2,3,4}
#- 生成兩個集合的補集
s1 = {1,2,3}
s2= {2,3,4}
s3= s1 - s2 #生成屬于s1,但不屬于s2的所有元素的集合
#^ 生成兩個集合的對稱補集
s1 = {1,2,3}
s2= {2,3,4}
s3= s1 ^ s2 #s3 ={1,4}
#> 判斷一個集合是另一個集合的超集#< 判斷一個集合是另一個集合的子集
s1 = {1,2,3}
s2= {2,3}
s1> 2s #True, s1為s2的超集
s2 < s1 #True,s2為s1的子集
#== != 集合相同或不同
s1 = {1,2,3}
s2= {2,3,1}
s1== s2 #True 相同
s1 != s1 #False
#>= <= 超集或相同,子集或相同
練習
#1.經理有:曹操,劉備,孫權#技術員有:曹操,孫權,張飛, 關羽#用集合求:#1. 即是經理也是技術員的有誰?#2. 是經理,但不是技術人員的都有誰?#3. 是技術人員,但不是經理的人都有誰?#4. 張飛是經理嗎?#5. 身兼一職的人都有誰?#6. 經理和技術人員共有幾個人?
l= {"曹操","劉備","孫權"}
j= {"曹操","孫權","張飛","關羽"}print("即經理也是技術員的有:",l&j,)print("是經理,但不是技術人員的有",l-j)print("是技術人員,但不是經理的有",j-l)if "張飛" inl:print("是經理")else:print("張飛,不是經理")print("身兼一職的人:",l^j)print("經理和技術人員共有",len(l|j))
集合的方法:
#方法 # 意義
S.add(e) #在集合中添加一個新的元素e;如果元素已經存在,則不添加
S.remove(e) #從集合中刪除一個元素,如果元素不存在于集合中,則會產生一個KeyError錯誤
S.discard(e) #從集合S中移除一個元素e,在元素e不存在時什么都不做;
S.clear() #清空集合內的所有元素
S.copy() #將集合進行一次淺拷貝
S.pop() #從集合S中刪除一個隨機元素;如果此集合為空,則引發KeyError異常
S.update(s2) #等同于 S l= s2, 用 S與s2得到的全集更新變量S
S.difference(s2) #S - s2 補集運算,返回存在于在S中,但不在s2中的所有元素的集合
S.difference_update(s2) #等同于 S -= s2
S.intersection(s2) #等同于 S & s2
S.intersection_update(s2) #等同于S &= s2
S.isdisjoint(s2) #如果S與s2交集為空返回True,非空則返回False
S.issubset(s2) #如果S與s2交集為非空返回True,空則返回False
S.issuperset(...) #如果S為s2的超集返回True,否則返回False
S.symmetric_difference(s2) #返回對稱補集, 等同于 S ^ s2
S.symmetric_difference_update(s2) #等同于 S ^= s2, 用 S 與 s2 的對稱補集更新 S
S.union(s2) #生成 S 與 s2的全集, 等同于 S \# 集合是可迭代對象
集合推導式
集合推導式是用可迭代對象創建集合的表達式
#語法:#{表達式 for 變量 in 可迭代對象 [if 真值表達式]}#示例:#s = {x**2 for x in range(1,10)}#集合推導式可以嵌套#語法用列表推導式的嵌套相同
固定集合 frozenset(原封集合)
固定集合是不可變的,無序的,含有唯一元組的集合
#作用:#固定集合可以作為字典的鍵,還可以作為集合的值(可以放固定鍵)#創建固定集合構造函數 frozenset
frozenset()# 創建一個空的固定集合對象
frozenset(iterable)# 用可迭代對象創建一個新的固定集合對象
fz=frozenset()
fz= frozenset (range(10))
fz= frozenset ([1,3,8,6,9])
d= {frozenset({1,2,3}):"集合1,2,3"}
固定集合的運算:
#&交集 | 并集 -補集 ^對稱補集 < 子集 >超集#<= >= == !=#in / not in#(以上運算規則等用于set中的規則)
固定集合的方法:
相當于集合的全部方法去掉修改集合的方法
python基礎總結
階段總結
#數據類型:#不可變類型:#數字:bool,int,float,complex(復數)#容器:str,tulpe,frozenset,bytes(備留)#可變類型#list,dict,set,bytearray(備留)#值:#None,False,True
#表達式:#1 1 +1#print("hello")#max("ABC")+min("123")#條件表達式:x if x > y else y
#全部的推導式:#列表,字典,集合推導式
#語句:#表達式語句:#print("hello")#"""ABCD""""
#賦值語句:#a = 100#a = b = c = 200#x,y = 100,200#L[1] = 200#d["key"] = "鍵"
#del語句(刪除)#if 語句(如果)elif else:#while語句(循環)#for 語句(固定循環)#break語句(結束循環)#continue語句(重新執行循環)#pass語句
內建函數
#容器相關
len(x),max(x),min(x),sum(x),any(x),all(x)#構造函數:
bool(x) int(x) float(x) complex(r=0.0,i = 0.0)
str(x) list(x) tuple(x) dict(x) set(x) frozenset(x)#數值型 函數:
abs(x) round(x) pow(x,y,z=None) 冪運算#字符串相關
bin(x) oct(x) hex(x) chr(x) 數字 ord(x) 編碼#可迭代對象相關
range(start,stop,step) reversed(x) sorted(x,reverse=False)#輸入輸出相關:
input(x) print(...)#其它:
type(x) id(x)
總結
以上是生活随笔為你收集整理的python中创建集合的语句_Python 集合(set) 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 茄子怎么洗 怎样把茄子洗干净
- 下一篇: 吩咐近义词 吩咐近义词有哪些