首页 / 知识
Python集合类型
2023-11-12 13:35:00
python目前有两种内置集合类型,set和frozenset。
Ⅰ、两者区别
set是可变的,没有哈希值,其内容可以使用add()和remove()这样的方法来改变,所以不能被用作字典的键或其他集合的元素。
frozenset是不可变的,并且为hashable,其内容在被创建后不能再改变,因此可以被用作字典的键或其他集合的元素。
Ⅱ、创建集合
两个类的构造器有着相同的作用方式:
classset([iterable])
classfrozenset([iterable])
返回一个新的set或frozenset对象,其元素来自于iterable。集合的元素必须为hashable。要表示由集合对象构成的集合,所有的内层集合必须为frozenset对象。如果未指定iterable,则将返回一个新的空集合。
除了可以使用set构造器,非空的set(不是frozenset)还可以通过将以逗号分隔的元素列表包含于花括号之内来创建,例如:
>>>a={'hello','python'}
>>>type(a)
当然如果想要建立一个空的集合,则必须用set构造器。
Ⅲ、无序多项集set
set对象是由具有唯一性的hashable对象所组成的无序多项集。常见的用途包括成员检测、从序列中去除重复项以及数学中的集合运算,例如交集、并集、差集与对称差集等等。
与其他多项集一样,集合也支持xinset,len(set)和forxinset。作为一种无序的多项集,集合并不记录元素位置和插入顺序。相应地,集合不支持索引、切片或其他序列类的操作。
Ⅳ、集合操作
set和frozenset的实例提供一下操作:
len(s)#返回集合s中的元素数量
xins#检测x是否为s中的成员
xnotins#检测x是否非s中的成员
isdisjoint(other)#如果集合中没有与other共有的元素则返回True
issubset(other)#等同于set<=other,检测集合是否为other子集
set issuperset(other)#等同于set>=other,检测集合是否为other超集 set>other#检测集合是否为other真超集 #下面四种方法返回一个新集合 union(*others)#等同于set|other|...,并集 intersection(*others)#等同于set&other&...,交集 difference(*others)#等同于set-other-...,差集 symmetric_difference(other)#等同于set^other,补集 copy()#返回原集合的浅拷贝 set的实例与frozenset的实例之间基于它们的成员进行比较。例如set('abc')==frozenset('abc')返回True,set('abc')inset([frozenset('abc')])也一样。 可用于set而不能用于不可变的frozenset实例的操作: #下面四种方法更新集合 update(*others)#等同于set|=other|... intersection_update(*others)#等同于set&=other&... difference_update(*others)#set-=other|... symmetric_difference_update(other)#set^=other add(elem)#添加elem元素到集合中 remove(elem)#从集合中移除元素elem discard(elem)#如果元素elem存在集合中则将其移除 pop()#从集合中移除并返回任意一个元素 clear()#移除集合中所有元素 Note:issubset(),issuperset(),union(),intersection(),difference(),symmetric_difference(),update(),intersection_update(),difference_update()和symmetric_difference_update()方法会接受任意可迭代对象作为参数。 set('abc')&'cbs'#错误 set('abc').intersection('cbs')#正确 相比之下,它们所对应的运算符版本则要求其参数为集合。这就排除了容易出错的构造形式例如set('abc')&'cbs',而推荐可读性更强的set('abc').intersection('cbs')。 以上内容为大家介绍了Python集合类型,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
Python变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要Python变量的类型(弱类型语言)
Python变量的类型(弱类型语言),检测,代码,数据,培训,类型,变量,语言,赋值,数字型,字符串,在强类型的编程语言中,定义变量时要指明变量的类型,而Python中常用的 json 操作有哪些?
Python中常用的 json 操作有哪些?,数据,培训,标准,对象,函数,参数,操作,字符串,下面,文件,刚开始接触json的操作,我主要有下面几个疑问:json操Python类和对象
Python类和对象,代码,培训,对象,实例,定义,关键字,函数,问题,顶层,全名,刚接触python中的类和对象,我也和大多数小伙伴一样迷茫,不知道它和我所Python文件操作步骤示例
Python文件操作步骤示例,异常,代码,信息,文件,设计,简介,通用,意外,中级,培训,我们来读取这样一个文本文件:song.txt,该文件的字符编码为utf-8python文件读写实现原理与操作步骤
python文件读写实现原理与操作步骤,数据,文件,培训,操作系统,操作,对象,磁盘,函数,可能会,原理,1.文件读写实现原理文件读写就是一种常见的IOPython中JSON 对象有哪些特点?
Python中JSON 对象有哪些特点?,名称,信息,代码,培训,数据,观察,对象,嵌套,数组,特点,JSON对象的结构是什么样子呢?上面代码中的obj就是一个JSPython中的对象
Python中的对象,数据,连续,代码,培训,概念,对象,内存,类型,初始化,静态,Python中一切皆是对象。————GuidovanRossum(1989)这句话只要你学Python切片操作详细例子
Python切片操作详细例子,情况,连续,培训,数据,切片,操作,终点,两者,矛盾,起点,以下示例均以列表a=[0,1,2,3,4,5,6,7,8,9]为例:>>>a=[0,1,2,3,4Python常用切片操作
Python常用切片操作,位置,培训,元素,嵌套,切片,对象,内部,操作,奇数,偶数,以列表:a=[0,1,2,3,4,5,6,7,8,9]为说明对象1.取偶数位置>>>b=a[::2]列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_Python面向对象的基本概念
Python面向对象的基本概念,概念,信息,位置,新增,培训,属性,鸟类,定义,对象,方法,python使用类(class)和对象(object),进行面向对象(object-ori