python入门 集合(四)
集合
集合是一个无序的不重复元素序列,可以迭代,也可以修改。集合迭代的时候元素是随机的。
集合通常用来 membership testing, 去重, 也可以用来求交集并集补集。
介绍一下如何创建集合和集合常见的用法。
创建集合
>>> s1 = set()
>>> print(s1)
set()
>>> l1 = [1, 2, 3, 4, 5, 4, 3]
>>> s2 = set(l1)
>>> print(s2)
{1, 2, 3, 4, 5}
#可以看到集合可以用来去重
>>> s3 = set('jwang')
>>> print(s3)
{'n', 'w', 'j', 'g', 'a'}
# 可以看到集合迭代的时候元素是随机的
>>> s4 = set(["C", “C++”, “Python”])
>>> print(s4)
{'C', 'Python', 'C++'}
修改集合
添加
add>>> print(s2)
{1, 2, 3, 4, 5}
>>> s2.add(6)
>>> print(s2)
{1, 2, 3, 4, 5, 6}
>>> s2.add((7,8))
>>> print(s2)
{1, 2, 3, 4, 5, 6, (7, 8)}
更新:通过传入一个列表来更新 update(list)
>>> print(s2)
{1, 2, 3, 4, 5, 6, (7, 8)}
>>> s2.update([6, 0])
>>> s2
{0, 1, 2, 3, 4, 5, 6, (7, 8)}
>>> s2.update([7, 8, 9], [10, 11])
>>> s2
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, (7, 8)}
>>>
更新:通过传入一个集合来更新 update(set)
>>> s2.update({100, 200})
>>> s2
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
删除 remove(val) discard(val)
不同点是remove在元素不存在时会报错,discard什么也不做。>>> s2.remove(0)
>>> s2
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
>>> s2.discard(0)
>>> s2.remove(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 0
一些其他方法
# copy 浅复制
>>> s3 = s2.copy()
>>> s3
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 200, 100, (7, 8)}
# clear 清空
>>> s3.clear()
>>> s3
set()
# set pop(),随机删除一个元素,并返回
>>> s = set([1, 2, 3])
>>> s.pop()
1
>>> s
{2, 3}
集合间操作
交集
>>> s2 = set([1, 2, 3, 4, 5, 10, 15, 22])
>>> s1 = set([1, 2, 3, 4, 5, 6, 7, 8])
>>> s1 & s2
{1, 2, 3, 4, 5}
>>> s1.intersection(s2)
{1, 2, 3, 4, 5}
求集合的不同
>>> s1.difference(s2)
{8, 6, 7}
>>> s2.difference(s1)
{10, 22, 15}
是不是子集
>>> s3 = set([6, 7, 8])
>>> s2.issubset(s2)
True
>>> s2.issubset(s1)
False
>>> s1.issuperset(s3)
True
python入门 集合(四)的更多相关文章
- python入门(四)
今天主要记录下python中文件的编辑与函数. 一.修改文件 一)简单粗暴--直接修改 1.打开一个文件,获取到所有内容2.对内容进行修改3.清空原来的文件4.把新的内容写进去 f = open('u ...
- Python 入门(四)List和Tuple类型
创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
- Python入门(四,高级)
一,面向对象 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的. ...
- python入门(四):字符串、编码、random
1.字符串 字符串基本有两种类型,str和bytes >>> s="a" >>> type(s) <class 'str'> ...
- python入门(四):标准输出和文件读写
Python输出 1.表达式语句 str(): 函数返回一个用户易读的表达形式,可以使用 str.format() 函数来格式化输出值. repr(): 产生一个解释器易读的表达形式. 2.print ...
- Python学习系列(四)Python 入门语法规则2
Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, ...
- Python基本语法[二],python入门到精通[四]
在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...
- MyBatis基础入门《四》接口方式.Select查询集合
MyBatis基础入门<四>接口方式.Select查询集合 描述: 在<MyBatis基础入门<二>Select查询>中有说过,SQLSession有两种用法,这里 ...
- Python 入门基础5 --元组、字典、集合
今日目录: 一.元组 二.字典 三.集合 四.后期添加内容 一.元组 1.定义 t1 = () # 参数为for可以循环的对象(可迭代对象) 思考: 如何定义一个只有一个值的元组? ("li ...
随机推荐
- linux利用用户组给用户赋予不同的权限
在Linux中wheel组就类似于一个管理员的组.通常在LUNIX下,即使我们有系统管理员root的权限,也不推荐用root用户登录.一般情况下用普通用户登录就可以了,在需要root权限执行一些操作时 ...
- 实战:基于 Spring 的应用配置如何迁移至阿里云应用配置管理 ACM
最近遇到一些开发者朋友,准备将原有的Java Spring的应用配置迁移到 阿里云应用配置管理 ACM 中.迁移过程中,遇到不少有趣的问题.本文将通过一个简单的样例来还原迁移过程中遇到的问题和相关解决 ...
- XSS的原理分析与解剖:第三章(技巧篇)**************未看*****************
0×01 前言: 关于前两节url: 第一章:http://www.freebuf.com/articles/web/40520.html 第二章:http://www.freebuf.com/a ...
- 天照(amaterasu)
天照(amaterasu) 有些时候,出题人真的不想写背景. 总而言之,天照现在有一个长度为 $ N $ 序列,她有 $ M $ 次询问,对于第 $ i $ 次询问 $ l_i,r_i,x_i $ 你 ...
- The method setPositiveButton(int, DialogInterface.OnClickListener) in the type AlertDialog.Builder i
参考资料: http://blog.csdn.net/competerh_programing/article/details/7377950 在创建Dialog的时候,出现: The method ...
- R语言中样本平衡的几种方法
R语言中样本平衡的几种方法 在对不平衡的分类数据集进行建模时,机器学习算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带有误导性.在不平衡的数据中,任一算法都没法从样本量少的类中获取 ...
- C++——Lambda表达式
0.使用场景---只有一两个地方使用的简单操作 独立出来一个函数,但这个函数实现相对简单并且可能在整个项目只使用了一次(即不存在复用的情况),那么这个时候我们就可以考虑使用下lambda表达式了. ? ...
- 前端(七)—— 盒模型之display、overflow、隐藏、border、margin、样式支持,层级结构
display.overflow.隐藏.border.margin.样式支持,层级结构 一.盒模型之display 1.三种样式 block 块 inline 内联/行内 inline-block 内 ...
- 通过字体代替图片优化,如何使用Font Awesome字体图标?
博客搬迁,给你带来的不便敬请谅解! http://www.suanliutudousi.com/2017/10/17/%E9%80%9A%E8%BF%87%E5%AD%97%E4%BD%93%E4%B ...
- python软件开发规范&分文件对于后期代码的高效管理
根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助! 一.软件开发规范--分文件 当代码存在一个py文件中时: 1.不便于管理 (修改,增加 ...