Python之集合操作
创建集合
>>> a = {1,2,3,4,2,'alex',3,'rain','alex'} >>> a {1, 2, 3, 4, 'alex', 'rain'}
帮列表去重
>>> b [1, 2, 3, 4, 2, 'alex', 3, 'rain', 'alex'] >>> set(b) {1, 2, 3, 4, 'alex', 'rain'} >>> >>> b = list(set(b)) #一句代码搞定 >>> b [1, 2, 3, 4, 'alex', 'rain']
增删改查
>>> a {1, 2, 3, 4, 'alex', 'rain'} #新增 >>> a.add('黑姑娘') #删除discard >>> a {2, 3, '黑姑娘', 'alex', 'rain'} >>> a.discard('rain') #删除一个存在的值 >>> a.discard('rain2') #如果这个值不存在,do nothing. >>> a {2, 3, '黑姑娘', 'alex'} >>> #随机删除,少用,或特定场景用 >>> a.pop() #删除并返回 1 #删除remove >>> a.remove(4) #查 >>> a {2, 3, '黑姑娘', 'alex', 'rain'} >>> 'alex' in a True #改 呵呵,不能改。。
关系运算
s_1024 = {"佩奇","老男孩","海峰","马JJ","老村长","黑姑娘","Alex"} s_pornhub = {"Alex","Egon","Rain","马JJ","Nick","Jack"} print(s_1024 & s_pornhub) # 交集, elements in both set print(s_1024 | s_pornhub) # 并集 or 合集 print(s_1024 - s_pornhub) # 差集 , only in 1024 print(s_pornhub - s_1024) # 差集, only in pornhub print(s_1024 ^ s_pornhub) # 对称差集, 把脚踩2只船的人T出去
两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:
print(s_1024.isdisjoint(s_pornhub)) # 判断2个集合是不是不相交,返回True or False print(s_1024.issubset(s_pornhub)) # 判断s_1024是不是s_pornhub的子集,返回True or False print(s_1024.issuperset(s_pornhub)) # 判断s_1024是不是s_pornhub的父集,返回True or False