Python-语法糖-集合Set

python中的set特点和java中的set是一样的


定义一个set

set={'a','b','a'}
print(set)		# 打印{'b', 'a'}

set中的元素不能是可变对象

下面的代码是错的

set={'a','b',[1,2]}		# 这里会报错,报错的原因说的是[1,2]不能进行hashcode,这个地方python做的不好
print(set)

添加元素

# 添加单个元素
set={'a','b','a'}
set.add('d')	
print(set)		# 打印{'b', 'a', 'd'}

# 批量添加元素
set={'a','b'}
set.update(['c','d'])	
print(set)		# 打印{'a', 'd', 'c', 'b'}

删除元素Set.remove(XXX)

set={'a','b'}
set.remove('b') # 删除b,如果b不存在,则报错
set.discard('b) # 删除b,如果b不存在,没有任何反应
print(set)		# 打印{'a'}

合并(union)

set1={'a','b'}
set2={'c','d'}
set3=set1.union(set2)	# 或者这样写也可以set3=set1| set2
print(set3)		# 打印{'c', 'a', 'd', 'b'}

交集(intersection)

set1={'a','b'}
set2={'c','b'}
set3=set1.intersection(set2) # 或者set1 & set2
print(set3)		# 打印{'b'}

差集(difference)

# 从1中,减去12都有的,1中剩下的给一个新的集合
set1={'a','b'}
set2={'c','b'}
set3=set1.difference(set2) # 或者set1 - set2
print(set3)		# 打印{'a'}

对称差

# 从1+2中,减去12都有的,1+2中剩下的给一个新的集合
set1={'a','b'}
set2={'c','b'}
set3=set1.symmetric_difference(set2) # 或者set1 ^ set2
print(set3)		# 打印{'a','c'}

不可变set(frozen set)

据说用作map的key的集合,感觉没啥用,不如将keys写配置文件中

set1= ['x','y']
set1= frozenset(set1)
print(set1)					# frozenset({'y', 'x'})
set2 = frozenset({'a','b'})
print(set2)					# frozenset({'a', 'b'})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值