集合:用於包含一組無序的對象;
可以理解爲將一個列表放入{}中組成了集合
創建集合 :使用set函數或者使用{} 並提供要存儲的項 如:
s = set([3,5,9,10]) #創建一個數據集合 e = {1,2,3,4,6,7,8} #也可以這樣創建一個數據集合 t = set('Hello') #創建一個唯一字符的集合
與列表、元組的區別:
1,集合是無序的
2, 無法通過數字進行索引
3,集合元素不能重複 每個元素都具有唯一性
檢查t集合中的值 :
print(t)
輸出 無序的一個集合:
{'H', 'o', 'e', 'l'}
集合支持一系列標準操作,包括並集,交集,差集和對稱差集 如:
a = t|s #求並集 b = t&s #求交集 c = t-s #求差集 d = t ^s # 求對稱差集
解釋:
| :兩個集合的合併對象
& :兩個集合同時存在的對象
- :項在t中存在但不在s中存在
^ : 兩個集合當中不會同時存在的對象
輸出結果:
{3, 4, 5, 6, 7, 'e', 'l', 'H', 'o'}
set()
{'H', 'l', 'e', 'o'}
{3, 4, 5, 6, 7, 'e', 'o', 'H', 'l'}
集合添加數據的兩種方法:
1,add()方法:添加一項
data = {1,2,3,4,5}; data.add(6); print(data);
輸出結果:
{1, 2, 3, 4, 5, 6}
2,update()方法:添加多項
data.update('ABC');
#也可以使用 data.update('A','B','C');
輸出結果:
{1, 2, 3, 4, 5, 6, 'A', 'B', 'C'}
集合中刪除一項的方法:
remove() 方法:
data.remove('A');
輸出結果:
{1, 2, 3, 4, 5, 6, 'B', 'C'}
問題:爲什麼要有集合?
實踐:
在列表當中如果要去除重複的項:
data = ['A','B','A','C',1,2,3,2,4,1,3]; all = []; for num in data: #循環data數據 if num not in all: #如果不存在於列表all中 all.append(num); #則追加 print(all);
輸出結果:
{1, 2, 3, 4, 'A', 'B', 'C'}
使用集合簡化列表中去重:
data = list(set(data)); print(data);
解釋:由於集合中的對象具有唯一性 所以將數據聲明成爲集合 去除重複項後再轉換爲列表
注意: 由於集合具有無序性 因此得出的結果序列會發生變化,在規定輸出順序時謹慎使用
輸出結果:
{1, 2, 'B', 'C', 3, 'A', 4}
總結:
1,如何創建一個集合:set() {}
2,集合與列表、元組的區別 : 無序 不能索引和切片 對象具有唯一性
3,如何求並集 交集 差集 對稱差集(|,&,-,^)
4,兩種添加方法 和一種刪除方法: add()、 update()、 remove()
5,實踐 :如何使用集合:list(set(data));