python 集合 set
集合 set:可变集合与不可变集合
可变集合:可以向集合中添加删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素。
把不同的元素组成一起形成集合,集合不记录元素的位置或者插入点,也就是不能用index索引来获取元素。
集合元素:组成集合的成员不可以有重复,有重复的会被筛选过滤。
语法:set()函数
set('list') 参数需要时一个序列
例如:
>>> s = set('alex li')
>>> s
set(['a', ' ', 'e', 'i', 'l', 'x']) 在这里会发现两个l字符,输出时只出现了一次,其中一个重复的被set给筛选过滤掉了。
>> a=[1,2,3,4,5,6]
>>> b=set(a) 当集合被创建后,集合里面的内容就无法在进行修改
>>> b
set([1, 2, 3, 4, 5, 6])
集合对象是一组无序排列的可哈希的值:集合成员可以作为字典的键,列表,字典,元祖这些就是不可哈希的代表。
如何查看集合中的数据:
1、通过for循环的方式查看
2、通过迭代器的方式去查看
不可变集合:不可以向集合中添加删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素。
日常操作:
1、创建集合:由于集合没有自己的语法格式,只能通过集合的工厂方法set()和forzenset()来创建。
>>> set("[1,2,3,4,5]")
set([',', '1', '3', '2', '5', '4', '[', ']'])
2、访问集合:由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能通过循环遍历或使用用in、not in 来访问或者判断集合元素。
>>> b
set([1, 2, 3, 4, 5, 6])
>>> 2 in b
True
>>> li = [2,3,'alex']
>>> li
[2, 3, 'alex']
>>> b=set(li)
>>> b
set([2, 3, 'alex'])
>>> 'alex' in b
True
>>> 'ale' in b 通过这里可以发现‘alex’在集合中是作为一个整体的,不是作为一个字符串可以进行分开匹配。
False
3、更新元素:
add()方法:添加一个元素,把参数当做一个元素,不管参数的内容是多少。
>>> b
set([2, 3, 'alex'])
>>> b.add('qiyuanchang')
>>> b
set([2, 3, 'alex', 'qiyuanchang'])
update()方法:会把参数当做一个序列,参数会被拆分成序列添加到集合中,有重复的会被做去重操作。
>>> b
set([2, 3, 'alex', 'qiyuanchang', 'uu', 'u'])
>>> b.update('ops')
>>> b
set([2, 3, 'alex', 'qiyuanchang', 'uu', 'o', 'p', 's', 'u']) 这里会发下参数ops被做了拆分
>>> b.update('wwwwww')
>>> b
set([2, 3, 'alex', 'qiyuanchang', 'uu', 'o', 'p', 's', 'u', 'w']) 这里重复的几个w都被过滤掉了,只保留了一个
>>> li
[2, 3, 'alex']
>>> b=set(li)
>>> b
set([2, 3, 'alex'])
>>> b.update(['12','qiyuanchang']) 当参数是列表的时候,会把列表中的几个元素拆分添加到集合中。
>>> b
set(['12', 2, 3, 'alex', 'qiyuanchang'])
remove()方法:可以删除集合中的指定元素
>>> b
set(['12', 2, 3, 'alex', 'qiyuanchang'])
>>> b.remove(2)
>>> b
set(['12', 3, 'alex', 'qiyuanchang'])
pop()方法:随机删除集合中的元素,测试得知,应该默认会删除第一个集合元素。
>>> b
set(['12', 3, 'alex', 'qiyuanchang'])
>>> b.pop()
'12'
clear()方法:清空集合
>>> b.clear()
>>> b
set([])
del 方法:删除集合
>>> del s
>>> s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 's' is not defined
4、集合的类型操作符:
in、not in:可以判断一个元素是否存在于集合中
>>> s=set('qiyuanchang')
>>> s1=set('yuan')
>>> s
set(['a', 'c', 'g', 'i', 'h', 'n', 'q', 'u', 'y'])
>>> 'q' in s
True
集合等价于不等价(==、!=):判断两个集合是否相同
子集、超集:判断一个集合的元素内容是否是另外一个集合的子集。
>>> s=set('qiyuanchang')
>>> s1=set('yuan')
>>> s1 < s
True
联合:联合操作与集合的or操作其实是等价的,联合符号有个等价的方法,union()
交集:
差集:
python 集合 set的更多相关文章
- Python 集合set添加删除、交集、并集、集合操作符号
在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...
- [转]python集合set
Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 来源网 ...
- python集合使用范例的代码
在代码过程中中,将代码过程中比较好的代码段珍藏起来,如下的代码是关于python集合使用范例的代码,希望能对大伙有用. # sets are unordered collections of uniq ...
- python集合与字典的用法
python集合与字典的用法 集合: 1.增加 add 2.删除 •del 删除集合 •discard(常用)删除集合中的元素 #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...
- Python 集合内置函数大全(非常全!)
Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s ...
- Python 集合set()添加删除、交集、并集、集合操作详解
集合:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.每个元素的地位都是相同的,元素之间是无序的. 创建集合set python set类是在python的sets模块中,大家现在使 ...
- python集合可以进行相减
python集合可以进行相减 student = {'tom','jim','mary','tom','jack','rose'} print(student) print('rose' in stu ...
- Python集合类型的操作与应用
Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...
- Python - 集合 - 第十一天
Python 集合 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建 ...
- python集合set,交集,并集,差集,对称差集,子集和超集
python集合set,交集,并集,差集,对称差集,子集和超集 x = {1, 2, 3, 4} y = {2, 4, 5, 6} # 交集(取x中与y中相同部分) print(x.intersect ...
随机推荐
- Pycharm直接连接Github
Pycharm可以说是使用Python语言开发者的必备利器.高校学生有学生邮箱就可以免费使用,着实省了我不少银两.附个license图: Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很 ...
- 使用base64提升视觉效果体验
最近在做一个微信端的小项目,前端代码写完后,就放在手机端测试,没什么问题,但是页面在加载和渲染时的效果却让人有些不爽,虽然是个小项目,我大可不必做这些,但是看着页面的闪动,就忍不住想做些什么. 先说说 ...
- TOJ4114(活用树状数组)
TOJ指天津大学onlinejudge 题意:给你由N个数组成的数列,算出它们的所有连续和的异或和,比如:数列{1,2},则answer = 1 ^ 2 ^ (1 + 2) = 0. 这道题有几个关键 ...
- 刨根究底字符编码之十四——UTF-16究竟是怎么编码的
UTF-16究竟是怎么编码的 1. 首先要注意的是,代理Surrogate是专属于UTF-16编码方式的一种机制,UTF-8和UTF-32是不用代理的. 如前文所述,为了让UTF-16能继续编码基本平 ...
- HTML 头标签的 <title> <base> <meta> <link> <script> 的内容意思
头标签都放在<head></head>头部分之间.包括:title base meta link <title>:指定浏览器的.(标题) <base>: ...
- 剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作
剖析Elasticsearch集群系列涵盖了当今最流行的分布式搜索引擎Elasticsearch的底层架构和原型实例. 本文是这个系列的第一篇,在本文中,我们将讨论的Elasticsearch的底层存 ...
- mybatis代理类Demo
前言 简单实现通过代理接口来实现对数据的查询demo,也是对mybatis的一个熟练.首先是编写接口代理. public interface IBookMapper { List<BookMod ...
- 事务之使用JDBC进行事务的操作2
本篇将讲诉如何使用JDBC进行数据库有关事务的操作.在上一篇博客中已经介绍了事务的概念,和在MySQL命令行窗口进行开启事务,提交事务以及回滚事务的操作. 似乎事务和批处理都可以一次同时执行多条SQL ...
- SparkMLlib-----GMM算法
Gaussian Mixture Model(GMM)是一个很流行的聚类算法.它与K-Means的很像,但是K-Means的计算结果是算出每个数据点所属的簇,而GMM是计算出这些数据点分配到各个类别的 ...
- Ubuntu16.04修改内核启动
写这篇文章一是为了对遇到同样问题的人提供一个参考,二来也是为了自己便于总结和查阅.希望大神勿喷. 好了,废话不多说了,转入正题. 前几天给自己的电脑装了个Ubuntu16.04LTS,自己顺手就把里边 ...