Python基礎---集合set{}
阿新 • • 發佈:2019-01-02
一、概述
'''無序的可修改的序列'''
集合與之前列表、元組類似,可以儲存多個數據,但是這些資料是不重複的(具有自動去重功能)。
集合物件還支援交集(intersection),差集(difference)、並集和對稱差集(sysmmetric_difference),即關係測試。
(集合的基本功能包括關係測試和消除重複元素)
集合定義:
變數名={元素1,元素2,元素3,...}
元素不能為可變資料型別
變數名=set(可迭代內容) 例如 變數名=set(元組,自動,字串)
可迭代內容:列表,字串,元組,字典
二、集合的操作
1.建立集合
(1)按照集合的格式直接建立
注意:True會轉換成1,False會轉換成0,集合的最大作用就是去重複,預設去掉後邊重複的
set1={'a',True,1,(1,2,3),0,False}#{0, True, 'a', (1, 2, 3)}
print(set1)
print(type(set1))
{0, 'a', True, (1, 2, 3)}
<class 'set'>
(2)用列表以及set函式生成集合
lst=[1,2]
set2=set(lst)
print(set2)
{1, 2}
(3)用字串以及set函式生成集合
str1='hello'
set3=set(str1)
print(set3)
{'l', 'e', 'h', 'o'}
(4)用元組以及set函式生成集合
tup=(1,3,4)
set5=set(tup)
print(set5)
{1, 3, 4}
(5)用字典以及set函式生成集合
{'a', 'b'},字典只會輸出key值
dic={'a':13,'b':18}
set6=set(dic)
print(set6)
{'a', 'b'}
(6)建立空集合
set2=set() print(set2) print(type(set2))
set()
<class 'set'>
2.增加操作
(1)利用add方法新增
set1.add('舞')
print(set1)
{0, True, (1, 2, 3), 'a', '舞'}
(2)利用update方法新增
set_1={'舞','aa'}
set1.update(set_1)
print(set1)
{0, True, (1, 2, 3), 'a', '舞', 'aa'}
3.刪除操作
(1)利用pop方法隨機刪除集合中的一個元素
set1.pop()
print(set1)
{True, (1, 2, 3), 'a', '舞', 'aa'}
(2)利用remove方法指定刪除集合中的元素
set1.remove('a')
print(set1)
{True, (1, 2, 3), '舞', 'aa'}
(3)利用clear方法清空集合中的元素成為一個空集合set()
set1.clear()
print(set1)
set()
(4)利用del直接從記憶體中刪除集合
輸出會報錯
del set1
print(set1)
4.遍歷集合
for i in set1:
print(i)
True
(1, 2, 3)
舞
aa
三、關係測試
1.交集(&或intersection,取公共部分)
se={1,2,3,4}
se1={3,4,5,6}
print(se&se1)
print(se.intersection(se1))
{3, 4}
{3, 4}
2.反交集(^或symmetric_difference,取非公共部分)
print(se^se1)
print(se.symmetric_difference(se1))
{1, 2, 5, 6}
{1, 2, 5, 6}
3.並集(|或union,獲取兩集合全部內容,自動去重)
print(se|se1)
print(se.union(se1))
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
4.差集(-或difference,取set1或set2除去set1與set2的公共部分)
print(se-se1)
print(se.difference(se1))
print(se1-se)
print(se1.difference(se))
{1, 2}
{5, 6}
5.子集(<或issubset,set1<set2,set1為set2的子集)
se2={1,2}
se3={1,2,3}
print(se2<se3)
print(se2.issubset(se3))
True
6.超集(>或issuperset,set2>set1,set2為set1的超集)
print(se3>se2)
print(se3.issuperset(se2))