python中set(可变集合)、frozenset(不可变集合)的基本操作

本文介绍了Python中的可变集合set和不可变集合frozenset的基本操作,包括转换为字符串、列表和元组,集合运算如交集、并集、差集,以及添加、删除元素等。同时,还展示了set与frozenset的混合操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中set(可变集合)、frozenset(不可变集合)的基本操作

#!/usr/bin/env python
#coding=utf-8

def main():
	#可变集合
	print ">>>>>>>>>>>>>>>>Set"
	sets1 = set("this is a cjh's set1")
	sets2 = set("this is a wsy's set2")

	print ">>>>>>>>>>>>>>>>print Original Set"
	print sets1
	print sets2

	print ">>>>>>>>>>>>>>>>Set into a Str、List、Tuple"
	print ' '.join(s for s in sets1)
	print list(sets1)
	print tuple(sets1)
	#set不能转化为字典

	#set的交集、合集、差补
	print ">>>>>>>>>>>>>>>>Set Operator &、|、-"
	print sets1 & sets2
	print sets1 | sets2
	print sets1 - sets2

	#set元素的增加、删除
	print ">>>>>>>>>>>>>>>>Set add、update、remove"
	sets1.add('XDU')
	print sets1

	sets1.update('SCUT')
	print sets1

	sets1.remove('1')
	print sets1

	#不可变集合
	print ">>>>>>>>>>>>>>>>Frozenset"
	frozensets1 = frozenset("this is a cjh's frozenset1")
	frozensets2 = frozenset("this is a wsy's frozenset2")

	print ">>>>>>>>>>>>>>>>print Original Frozenset"
	print frozensets1
	print frozensets2

	print ">>>>>>>>>>>>>>>>Frozenset into a Str、List、Tuple"
	print ' '.join(s for s in frozensets1)
	print list(frozensets1)
	print tuple(frozensets1)
	#Frozenset不能转化为字典

	#Frozenset的交集、合集、差补
	print ">>>>>>>>>>>>>>>>Frozenset Operator &、|、-"
	print frozensets1 & frozensets2
	print frozensets1 | frozensets2
	print frozensets1 - frozensets2

	#Frozenset元素的增加、删除
	print ">>>>>>>>>>>>>>>>Frozenset add、update、remove"
	# frozensets1.add('XDU')#AttributeError: 'frozenset' object has no attribute 'add'
	# print frozensets1

	# frozensets1.update('SCUT')#AttributeError: 'frozenset' object has no attribute 'update'
	# print frozensets1

	# frozensets1.remove('1')#AttributeError: 'frozenset' object has no attribute 'remove'
	# print frozensets1

	#Set的子集和超集
	print ">>>>>>>>>>>>>>>>Set <、>="
	print set('cjh') < set('cjh3353')
	print set('cjh') < set('3353ch')

	print set('cjh3353') >= set('3353')
	print set('3353') >= set('3353')
	print set('3353') > set('3353')

	#Set的对称差分(^),新集合中的元素只能属于集合1或集合2中的元素,不能同时属于两个集合(若两个集合的交集不为空,新的集合由去掉集合1和集合2的交集元素后剩余的元素组成;若两个集合的交集为空,则新集合中的元素相当于两个集合的合集)
	print ">>>>>>>>>>>>>>>>Set ^"
	print set('cjh3353') ^ set('cjh')
	print set('cjh3353') ^ set('wsy')

	#Set的|=、&=、-=、^=
	print ">>>>>>>>>>>>>>>>Set |=、&=、-=、^="
	s1 = set('book')
	s1 |= set('shop')#从已存在的集合中添加元素,此方法金额update()等价
	print s1

	s2 = set('book')
	s2 &= set('shop')#保留与其他集合的共有元素
	print s2

	s3 = set('book')
	s3 -= set('shop')#新集合中的元素是集合'book'中去掉与集合'shop'中共有的元素后剩余的元素
	print s3

	s4 = set('book')
	s4 ^= set('shop')#新集合中的元素仅由集合'book'或仅由集合'shop'中元素组成,不能是两个集合中都有的元素
	print s4

	#混合集合类型操作
	#若左右两个操作数的类型相同,即都是可变集合或不可变集合,则产生的结果类型是相同的。但如果左右两个操作数的类型不相同(左操作数是set,右操作数是frozenset,或者相反),则所产生的结果类型与左操作数的类型相同。
	print ">>>>>>>>>>>>>>>>Set、Frozenset Mix Operation"
	sMix = set('book')
	fMix = frozenset('shop')

	print sMix - fMix#set - frozenset = set类型
	print fMix - sMix#frozenset - set = frozenset类型
	print sMix - set('hoop')#set - set = set类型
	print fMix - frozenset('hoop')#frozenset - frozenset = frozenset类型

if __name__ == '__main__':
	main()

运行结果:

>>>>>>>>>>>>>>>>Set
>>>>>>>>>>>>>>>>print Original Set
set(['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', '1', 's', 't'])
set(['a', ' ', 'e', "'", 'i', 'h', 's', '2', 't', 'w', 'y'])
>>>>>>>>>>>>>>>>Set into a Str、List、Tuple
a c e ' i h j 1 s t
['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', '1', 's', 't']
('a', ' ', 'c', 'e', "'", 'i', 'h', 'j', '1', 's', 't')
>>>>>>>>>>>>>>>>Set Operator &、|、-
set(['a', ' ', 'e', "'", 'i', 'h', 's', 't'])
set(['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', '1', 's', '2', 't', 'w', 'y'])
set(['1', 'c', 'j'])
>>>>>>>>>>>>>>>>Set add、update、remove
set(['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', 'XDU', '1', 's', 't'])
set(['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', 'XDU', '1', 's', 'U', 't', 'C', 'S', 'T'])
set(['a', ' ', 'c', 'e', "'", 'i', 'h', 'j', 'XDU', 's', 'U', 't', 'C', 'S', 'T'])
>>>>>>>>>>>>>>>>Frozenset
>>>>>>>>>>>>>>>>print Original Frozenset
frozenset(['a', ' ', 'c', 'e', "'", 'f', 'i', 'h', 'j', 'o', 'n', '1', 's', 'r', 't', 'z'])
frozenset(['a', ' ', 'e', "'", 'f', 'i', 'h', 'o', 'n', 's', 'r', 't', 'w', 'y', '2', 'z'])
>>>>>>>>>>>>>>>>Frozenset into a Str、List、Tuple
a c e ' f i h j o n 1 s r t z
['a', ' ', 'c', 'e', "'", 'f', 'i', 'h', 'j', 'o', 'n', '1', 's', 'r', 't', 'z']
('a', ' ', 'c', 'e', "'", 'f', 'i', 'h', 'j', 'o', 'n', '1', 's', 'r', 't', 'z')
>>>>>>>>>>>>>>>>Frozenset Operator &、|、-
frozenset(['a', ' ', 'e', "'", 'f', 'i', 'h', 'o', 'n', 's', 'r', 't', 'z'])
frozenset(['2', 'a', ' ', 'c', 'e', "'", 'f', 'i', 'h', 'j', 'o', 'n', '1', 's', 'r', 't', 'w', 'y', 'z'])
frozenset(['1', 'c', 'j'])
>>>>>>>>>>>>>>>>Frozenset add、update、remove
>>>>>>>>>>>>>>>>Set <、>=
True
False
True
True
False
>>>>>>>>>>>>>>>>Set ^
set(['3', '5'])
set(['c', 'h', 'j', '3', 's', '5', 'w', 'y'])
>>>>>>>>>>>>>>>>Set |=、&=、-=、^=
set(['p', 's', 'b', 'h', 'k', 'o'])
set(['o'])
set(['k', 'b'])
set(['b', 'h', 'k', 'p', 's'])
>>>>>>>>>>>>>>>>Set、Frozenset Mix Operation
set(['k', 'b'])
frozenset(['h', 's', 'p'])
set(['k', 'b'])
frozenset(['s'])
[Finished in 0.2s]


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值