python中的set方法_Python中set与frozenset方法和区别详解

set(可变集合)与frozenset(不可变集合)的区别:

set无序排序且不重复,是可变的,有add(),remove()等方法。既然是可变的,所以它不存在哈希值。基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交集), difference(差集)和sysmmetric difference(对称差集)等数学运算.

sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, 或其它类序列的操作。

frozenset是冻结的集合,它是不可变的,存在哈希值,好处是它可以作为字典的key,也可以作为其它集合的元素。缺点是一旦创建便不能更改,没有add,remove方法。

一、集合的创建

set()和 frozenset()工厂函数分别用来生成可变和不可变的集合。如果不提供任何参数,默认会生成空集合。如果提供一个参数,则该参数必须是可迭代的,即,一个序列,或迭代器,或支持

迭代的一个对象,例如:一个列表或一个字典。

>>> s=set('cheeseshop') 使用工厂方法创建

>>> s

{'h', 'c', 'o', 's', 'e', 'p'}

>>> type(s)

>>> s={'chessseshop','bookshop'}直接创建,类似于list的[]和dict的{},不同于dict的是其中的值,set会将其中的元素转换为元组

>>> s

{'bookshop', 'chessseshop'}

>>> type(s)

不可变集合创建:

>>> t=frozenset('bookshop')

>>> t

frozenset({'h', 'o', 's', 'b', 'p', 'k'})

二、更新可变集合

用各种集合内建的方法和操作符添加和删除集合的成员:

>>> s.add('z') #添加

>>> s

set(['c', 'e', 'h', 'o', 'p', 's', 'z'])

>>> s.update('pypi') #添加

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])

>>> s.remove('z') #删除

>>> s

set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])

>>> s -= set('pypi')#删除

>>> s

set(['c', 'e', 'h', 'o', 's'])

>>> del s #删除集合

只有可变集合能被修改。试图修改不可变集合会引发异常。

>>> t.add('z')

Traceback (most recent call last):

File "", line , in ?

AttributeError: 'frozenset' object has no attribute 'add'

三、成员关系 (in, not in)

>>> 'k' in s

False

>>> 'k' in t

True

>>> 'c' not in t

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简评亚洲人工智能发展现状:机遇与挑战并存

来源:36氪 概要:人工智能将作为一种基础性的力量,对我们的生活以及生活方式带来极大的改变,甚至是颠覆。 人工智能将作为一种基础性的力量,对我们的生活以及生活方式带来极大的改变,甚至是颠覆。 编者按&am…

c++全局类对象_C++ 类在内存中的存储方式(一)

说了这么久的 C 终于说到类了,还是从内存出发来讨论一下 C 的类在内存中的存储方式(之前写过一篇内存对齐的文章,类同样在一定程度上遵循内存对齐原则,不过比结构体复杂一下)如有侵权,请联系删除,如有错误…

以人工智能的卖点,华为携Mate 10向苹果发起新一轮攻势

华为于10月16日在德国慕尼黑发布了Mate 10系列手机。 Mate 10系列分为Mate 10、Mate 10 Pro和保时捷设计版,都搭载自家的麒麟970处理器。 来源:腾讯科技、PingWest品玩 Mate 10与Mate 10 Pro的主要区别在于屏幕和指纹识别。 Mate 10采用5.9英寸2560 x 14…

英国再推人工智能报告: 四方面发力打造AI强国

来源:腾讯研究院 概要:放眼全球的人工智能领域,美中英是在此领域表现最为突出的三个国家。英国一直是人工智能的研究学术重阵。 导读 放眼全球的人工智能领域,美中英是在此领域表现最为突出的三个国家。英国一直是人工智能的研究学…

手机h5可以用ifreme_折叠照片特效,用手机修图软件就可以实现

前两天有人问下面这种特效是怎么做的:大健看这种折叠照片要发现其中的规律:一是折叠度为90,每一张折叠照片的角度都是;二是对角线平分两张素材的角度为45。所以我们在后期制作这种折叠照片时一定要考虑好这两个条件,不…

“技术崇拜”与“技术恐惧”都会阻碍 AI 创新,“技术节制”才是正道

来源:36氪 概要:我们需要的是一种能够理解我们不断变化的想法的工具,而不是一个一直试图去模仿我们习惯的工具。 我们需要的是一种能够理解我们不断变化的想法的工具,而不是一个一直试图去模仿我们习惯的工具。 随着我们制造的机…

mysql 本地连接_mysql开启远程连接及本地连接

问题描述在本机windows上连接linux服务器上的mysql报错:hostXXX is not allowed to connect to this mysql server。这个错误是由于mysql server没有开启远程连接权限,所以本机连接不上远程的mysql。解决方法开启mysql 远程连接权限一、开启远程连接首先…

人机智能融合--人工智能的未来发展方向

来源:科学网 概要:在经历了三次起伏(即上世纪70年代后期对数学定理证明非万能的清醒、90年代后期对专家系统与五代机的失望、2006年深度学习掀起了新一轮的浪潮),人们狂热的希望逐渐踏实了很多,目光和注意力…

mysql先排序再分组筛选_mysql 怎样先排序再分组

权游游牧族:众所周知!一句SqL语句不能先排序再分组。所以这里给出几个案例--表结构--create table shop (id int (10) PRIMARY KEY,shop_name varchar (100),item_name varchar (100),price int (10));insert into shop (id, shop_name, item_name,price…

composer 路径_深入学习Composer原理(三)

本系列第三篇文章,一起了解下PSR规范中的PSR4和PSR0规范首先恭喜大家,包括我自己,坚持到了现在。这篇文章之后,Composer的基础原理就清晰明了咯。也就是说,Composer所利用的正是spl_autoload_register()和PSR4规范&…

科普丨深度学习 vs 概率图模型 vs 逻辑学

来源:人工智能爱好者俱乐部 概要:许多早期的人工智能工作都是关注逻辑、自动定理证明和操纵各种符号。John McCarthy于1959年写的那篇开创性论文取名为《常识编程》也是顺势而为。 今天,我们一起来回顾过去50年人工智能(AI)领域形成的三大范式…

如何查看mysql8.0的默认密码_MySQL8.0安装之后查找默认密码

MySQL8.0和MySQL5.7具有众多不同之处,此处不赘述。这里,只简单讲讲在安装过程中遇到的问题之一和解决办法: MySQL8.0安装完成之后的默认密码是多少?如何修改初始密码? 1 启动MySQL服务 启动MySQL服务的命令: shell> sudo service mysqld start Starting mysqld:[ OK ]…

浅析未来大数据的发展趋势

来源:36大数据 概要:随着我国进入大数据时代,很多人对于大数据的发展趋势还处于懵懂的状态,充分提升大数据的应用对于我国各个行业,都会有非常重要和有效的指导性作用。 随着我国进入大数据时代,很多人对于…

mysql update nowait_MySQL 8.0新特性 -- nowait以及skip locked

如果某行记录被事务锁住了,select ... for update、或select ... for share事务对相同的行加锁的时候必须等待,直到产生阻塞的事务释放锁。为了避免等待事务释放锁定的行,nowait和skip locked选项可以被用于select ... for update或select ..…

微软 CEO 纳德拉访谈:人工智能的大方向与未来是什么?

来源:36氪 概要:我们都对科技的发展抱有乐观的态度,我们坚信,人工智能带来的挑战是让我们和社会定义什么是真正的人类。未来将会是一个人工智能强化和增强人类能力的世界,而不是让人类变得更加无用。 人工智能的未来到…

mysql主从是同步还是异步_mysql主从同步异步场景的分析

之所以进行这块内容的研究,主要针对之前遇到的两个未解的疑惑:a. 线上有个系统,半同步状态经常从半同步变成异步,然后又马上恢复为半同步,具体原因未明,虽然之前也猜得八九不离十,但…

不用恐惧AI的高速发展,论击败阿法狗(零)最简单的方法

作者:刘锋 计算机博士,互联网进化论作者 10月19日凌晨,在国际学术期刊《自然》(Nature)上发表的一篇研究论文中,谷歌下属公司Deepmind报告新版程序AlphaGo Zero:从空白状态学起,在无…

mysql不能设置密码_mysql不能设置密码

你的位置:问答吧-> FreeBSD-> 问题详情mysql不能设置密码ports安装mysql-4.0.15,设置密码时:# mysqladmin -u root password 2568723630mysqladmin: unable to change password; error: Access denied for user: localhost to database mysql也不能添加数据库…

神经网络中的「注意力」是什么?怎么用?

来源:转载自公众号「雷克世界」微信号:ROBO_AI 编译:嗯~阿童木呀、多啦A亮 概要:神经网络中的注意力机制(Attention mechanisms),也被称为“神经注意力”或“注意力”,最近吸引了广泛…

redis配置mysql缓存_Redis做mysql的缓存服务器

一redis简介:redis 是一个高性能的 key-value 数据库。 redis 的出现,很大程度补偿了memcached 这类 keyvalue 存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了 Python,Ruby,Erlang,PHP 客户端,使用很方便。Redis 的所有数据都是保存在内存中,然…