厚街镇做网站,建设网站建设网页制作0402高设计词,有什么网站可以接活做设计标志,网页模板下载网站目录
目标
版本
官方文档
集合分类
实战
创建
循环
常用方法 目标 掌握set和frozenset两种集合的使用方法#xff0c;包括#xff1a;创建、交集、并集、差集等操作。 版本 Python 3.12.0 官方文档
Set Types — set, frozensethttps://docs.python.org/3/library/s…目录
目标
版本
官方文档
集合分类
实战
创建
循环
常用方法 目标 掌握set和frozenset两种集合的使用方法包括创建、交集、并集、差集等操作。 版本 Python 3.12.0 官方文档
Set Types — set, frozensethttps://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset 集合分类
官方定义 Set Types — set, frozenset A set object is an unordered collection of distinct hashable objects. Common uses include membership testing, removing duplicates from a sequence, and computing mathematical operations such as intersection, union, difference, and symmetric difference. (For other containers see the built-in dict, list, and tuple classes, and the collections module.) Like other collections, sets support x in set, len(set), and for x in set. Being an unordered collection, sets do not record element position or order of insertion. Accordingly, sets do not support indexing, slicing, or other sequence-like behavior. There are currently two built-in set types, set and frozenset. The set type is mutable — the contents can be changed using methods like add() and remove(). Since it is mutable, it has no hash value and cannot be used as either a dictionary key or as an element of another set. The frozenset type is immutable and hashable — its contents cannot be altered after it is created; it can therefore be used as a dictionary key or as an element of another set. Non-empty sets (not frozensets) can be created by placing a comma-separated list of elements within braces, for example: {jack, sjoerd}, in addition to the set constructor. 译文
集合对象是无序的因此集合不记录元素的插入位置或顺序因此集合不支持索引、切片或其他类似序列对象的方法。目前有两种内置的集合类型分别是 set 和 frozenset。set是可变的内容可以通过add()和remove()等方法进行更改。由于它是可变的它没有哈希值因此不能用作字典键或另一个集合的元素。frozenset是不可变的其内容在创建后不能更改因此可以用作字典键或另一个集合的元素。集合用大括号或构造方法创建用逗号分隔元素。
补充 set和frozenset内的元素不可以重复。 实战
frozenset和set的操作基本一致构造方法名不同、frozenset不能增删元素而set能增删元素因此这里只例举set类型的使用方法。
创建
官方文档 class set([iterable]) class frozenset([iterable]) Return a new set or frozenset object whose elements are taken from iterable. The elements of a set must be hashable. To represent sets of sets, the inner sets must be frozenset objects. If iterable is not specified, a new empty set is returned. Sets can be created by several means: Use a comma-separated list of elements within braces: {jack, sjoerd} Use a set comprehension: {c for c in abracadabra if c not in abc} Use the type constructor: set(), set(foobar), set([a, b, foo]) 译文
集合的元素来自可迭代对象。如果未指定可迭代对象则返回一个新的空集合。集合的元素必须是可哈希的。集合嵌套集合内部的集合必须是frozenset。
集合的创建方法
用大括号创建元素用逗号分隔。用集合推导式创建。用set构造方法创建。
用大括号创建元素用逗号分隔。
mySet{a,b,c}
#输出class set
print(type(mySet))
#输出{b, c, a}
print(mySet)
用集合推导式创建。
mySet{c for c in 1231231234545 if c not in 123}
#输出class set
print(type(mySet))
#输出{4, 5}
#分析拆分字符串将每个字符作为集合的元素条件是元素不能为1、2、3
print(mySet)
用set构造方法创建。
方法一用list创建set
mySet set([1, 2, 3, 3, 4, 4, 5,False,True,None,None,1])
#输出{False, 1, 2, 3, 4, 5, None, 1}
print(mySet)
方法二用tuple创建set
mySet set((1, 2, 3, 3, 4, 4, 5,False,True,None,None,1))
#输出{False, 1, 2, 3, 4, 5, None, 1}
print(mySet)
方法三用字符串创建set
mySet set(1234567890123)
#输出{3, 0, 9, 6, 2, 8, 1, 4, 5, 7}
print(mySet)
方法四根据文件对象创建set
# 我桌面有个a.txt文件
with open(C://Users//20203//Desktop//a.txt, r) as file:mySet set(file.readlines())
# 输出{2\n, 4\n, 3\n, 1\n, True, False\n}
print(mySet)# 去掉\n
with open(C://Users//20203//Desktop//a.txt, r) as file:mySet set(line.strip() for line in file.readlines())
print(mySet)
方法五根据迭代器对象创建set
myIteriter([1,2,3,False,True,Hello World.])
mySetset(myIter)
#输出class set
print(type(mySet))
#输出{False, 1, 2, 3, Hello World.}
print(mySet) 循环
方法一for循环
mySet{1,2,3,4,5}
for value in mySet:print(value)
方法二enumerate() 函数
mySet{1,2,3,4,5}
for index,value in enumerate(mySet):print(index,value)
方法三while循环
mySet {1, 2, 3, 4, 5}
#使用while循环遍历集合
iterator iter(mySet)
while True:try:element next(iterator)print(element)except StopIteration:break 常用方法
元素个数
mySet {123, 2, 3, 4, 5}
print(len(mySet))
集合是否包含元素
mySet {123, 2, 3, 4, 5}
#输出True
print(2 in mySet)
集合是否不包含元素
mySet {123, 2, 3, 4, 5}
#输出True
print(2 not in mySet)
交集
mySet{123, 2, 3, 4, 5}
yourSet{123, 2, 3, 4, 5,6,7}
#交集
otherSet mySet yourSet
#输出{2, 3, 4, 5, 123}
print( otherSet )
并集
mySet{123, 2, 3, 4, 5}
yourSet{123, 2, 3, 4, 5,6,7}
#交集
otherSet mySet | yourSet
#输出{2, 3, 4, 5, 6, 7, 123}
print( otherSet )
差集
mySet{123, 2, 3, 4, 5}
yourSet{123, 2, 3, 4, 5,6,7}
#差集
otherSet yourSet - mySet
#输出{6, 7}
print( otherSet )
对称差集
mySet{123, 2, 3, 4, 5,9}
yourSet{123, 2, 3, 4, 5,6,7}
#对称差集
otherSet mySet ^ yourSet
#输出{6, 7, 9}
print( otherSet )
集合嵌套集合
mySet {frozenset([a,b]),frozenset([c,d]) }
#输出class frozenset
print(type(frozenset([a])))
for inner_set in mySet:print(--------)for element in inner_set:print(element)
添加元素
mySet{1, 2, 3, 4, 5}
mySet.add(6)
#输出{1, 2, 3, 4, 5, 6}
print(mySet)
删除元素
mySet{1, 2, 3, 4, 5}
mySet.remove(1)
#输出{2, 3, 4, 5}
print(mySet)
是否没有共同元素
mySet {1, 2, 3, 4, 5}
yourSet {1, 2, 3}
# 输出False
# 分析有共同元素123
print(mySet.isdisjoint(yourSet))mySet {4, 5}
yourSet {1, 2, 3}
# 输出True
# 分析没有共同元素
print(mySet.isdisjoint(yourSet))
是否是子集关系
mySet {1, 2, 3, 4, 5}
yourSet {1, 2, 3}
# 输出False
# 分析mySet不是yourSet的子集
print(mySet.issubset(yourSet))
# 输出True
# 分析yourSet是mySet的子集
print(yourSet.issubset(mySet))
是否是超集关系
mySet {1, 2, 3, 4, 5}
yourSet {1, 2, 3}
# 输出True
# 分析mySet是yourSet的超集
print(mySet.issuperset(yourSet))
# 输出False
# 分析yourSet不是mySet的超集
print(yourSet.issuperset(mySet))