python集合的操作_Python集合操作方法详解
集合是無序的,天生不重復的數據組合,它的作用如下:
去重,即:把一個列表變成集合,就去重了
關系測試,即:測試兩組集合的交集、并集和差集等
一、集合常用方法總結
二、定義
1、語法
>>> name_1 = [1,2,3,4,7,8,7,10]
#把列表轉換為集合
>>> name_1 = set(name_1)
#轉換后,去重
>>> print(name_1,type(name_1))
{1, 2, 3, 4, 7, 8, 10}
三、關系測試
1、交集(intersection())
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#輸出結果
>>> name_1.intersection(name_2)
{8, 1, 10, 3}
2、并集(union())
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#輸出結果
>>> name_1.union(name_2)
{1, 2, 3, 4, 5, 7, 8, 10}
3、差集(difference())
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#輸出結果
>>> name_1.difference(name_2)
{2, 4, 7}
特別提示:差集取的是數值在第一個集合中,但是不在第二個集合中(在我不在你)
4、issubset()
判斷一個集合是否是另一個集合的子集
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#輸出結果
>>> name_3.issubset(name_1)
True
5、issuperset()
判斷一個集合是否是另一個集合的父集
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#輸出結果
>>> name_1.issuperset(name_3)
True
6、對稱差集(symmetric_difference())
把兩個集合沒有交集的數值取出來
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#輸出結果
>>> name_1.symmetric_difference(name_2)
{2, 4, 5, 7}
7、isdisjoint()
判斷兩個集合是否有交集,沒有交集,則返回True
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_3 = [11]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
>>> name_3 = set(name_3)
#有交集
>>> name_1.isdisjoint(name_2)
False
#無交集
>>> name_1.isdisjoint(name_3)
True
四、關系測試(特殊符號)
1、交集(&)
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#結果輸出
>>> name_1 & name_2
{8, 1, 10, 3}
2、并集(|)
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#結果輸出
>>> name_1 | name_2
{1, 2, 3, 4, 5, 7, 8, 10}
3、差集(-)
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#結果輸出
>>> name_1 - name_2
{2, 4, 7}
4、對稱差集(^)
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_2 = [1,3,5,8,10]
>>> name_1 = set(name_1)
>>> name_2 = set(name_2)
#輸出
>>> name_1 ^ name_2
{2, 4, 5, 7}
5、是否是子集(<=)
>>> name_1 = [1,2,3,4,7,8,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#輸出
>>> name_3 <= name_1
True
6、是否是父集(>=)
>>> name_1 = [1,2,3,4,7,8,10]
>>> name_3 = [1,2,3,4]
>>> name_1 = set(name_1)
>>> name_3 = set(name_3)
#輸出
>>> name_1 >= name_3
True
五、基本操作
1、添加(add())
>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
#添加已存在,不報錯
>>> name_2.add(1)
>>> name_2
{8, 1, 10, 3, 5}
#添加不存在,添加一個新的數值
>>> name_2.add(11)
>>> name_2
{1, 3, 5, 8, 10, 11}
2、添加多項(update())
>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2.update([12,13,14])
#輸出結果
>>> name_2
{1, 3, 5, 8, 10, 12, 13, 14}
3、刪除(remove(),pop(),discard())
①remove()
>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2
{8, 1, 10, 3, 5}
>>> name_2.remove(1)
#輸出
>>> name_2
{8, 10, 3, 5}
#刪除不存在的元素,會報錯
>>> name_2.remove(1)
Traceback (most recent call last):
File "", line 1, in
KeyError: 1
特別提示:用remove刪除時,當元素不存在,會報錯
②pop()
>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2
{8, 1, 10, 3, 5}
#輸出
>>> name_2.pop()
8
特別提示:pop是隨機刪除集合中的某個元素,并且打印
③discard()
>>> name_2 = [1,3,5,8,10]
>>> name_2 = set(name_2)
>>> name_2.discard(10)
#輸出結果
>>> name_2
{8, 1, 3, 5}
#刪除不存在元素,不報錯
>>> name_2.discard(10)
特別提示:用discard刪除不存在的元素,不會出現報錯
4、長度(len())
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#結果輸出
>>> len(name_1)
7
5、x?in?s
測試 x 是否是 s 的成員
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#結果輸出
>>> 1 in name_1
True
6、x?not?in?s
測試 x 是否不是 s 的成員
>>> name_1 = [1,2,3,4,7,8,7,10]
>>> name_1 = set(name_1)
#輸出
>>> 12 not in name_1
True
更多關于Python集合操作方法可查看下面的相關鏈接
本文標題: Python集合操作方法詳解
本文地址: http://www.cppcns.com/jiaoben/python/299941.html
總結
以上是生活随笔為你收集整理的python集合的操作_Python集合操作方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一图看懂联想拯救者Y9000P 2023
- 下一篇: python中冒号报错_python新手