Day8 Python基础之遗漏知识点(六)
1. 遗漏知识点
深、浅拷贝: http://www.cnblogs.com/yuanchenqi/articles/5782764.html
a=b:
浅拷贝:
深拷贝
集合(set)
集合的定义和应用
集合是一个无序的、不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
- 集合对象是一组无序排列的可哈希(python中不可变的对象都是可哈希的)的值:集合成员可以做字典的键
- 但集合本身是不可哈希的,不能用作字典的键
注:因为集合是无序的,所以只能通过迭代器或for循环取出其中的值
有关集合的一些操作(增删改查)
1.创建集合:可变集合set()和不可变集合frozenset()
2.访问集合:由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。
s1=set('hello')
s2=set(['hello',1,2])
print('h' in s1)
print('h' in s2)
True
False
3. 更新集合:
可使用以下内建方法来更新:
s.add() #添加一个元素
s.update() #添加多个元素
s.remove() #删除指定元素
s.pop() #随机删除某一元素
s.clear() #清空集合
注意只有可变集合才能更新:
a=set([1,2,3,'hello'])
print(type(a))
a.add('uu')
a.add('u')
print(a)
结果:{1, 2, 3, 'u', 'hello', 'uu'}
s.add()
a=set([1,2,3,'hello'])
print(type(a))
a.update('HO')
a.update('MM')
a.update([1,'MM'])
print(a)
结果:{1, 2, 3, 'hello', 'H', 'MM', 'O', 'M'}
s.update()
4. 删除集合
del
集合关系测试
1 in ,not in
2 集合等价与不等价(==, !=)
3 子集(a<b)、超集(b>a)
子集(issubset) 超集(issuperset)
print(set('venus')==set('venusnusnus'))
True
print(set('venus')<set('venus'))
False
print(set('venus')<set('venusyo'))
True
123
4.并集(I)
并集(union)操作也就是数学中的并集合运算,联合符号有个等价的方法,union()。
5.交集(&)
交集(intersection)也就是数学中的交集运算,交集符号的等价方法是intersection()
print(set('abc') & set('bcd'))
print(set('abc') | set('bcd'))
结果:{'c', 'b'}
{'c', 'd', 'b', 'a'}
联合、交集
6.差集(-)
差集(difference)a-b=in a but not in b=a-a&b;b-a=in b but not in a=b-a&b
7.对称差集(^)
对称差集(symmetric_difference)a^b=a|b-a&b
a=[1,2,3]
b=[3,4,5]
print(set(a).union(set(b)))
print(set(a).intersection(set(b)))
print(set(a).difference(set(b)))
print(set(a).symmetric_difference(set(b)))
结果:
{1, 2, 3, 4, 5}
{3}
{1, 2}
{1, 2, 4, 5}
注:既可以使用符号也可以使用集合的方法
Day8 Python基础之遗漏知识点(六)的更多相关文章
- Python基础学习笔记(六)常用列表操作函数和方法
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...
- python基础语法及知识点总结
本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...
- Python之路,Day8 - Python基础 面向对象高级进阶与socket基础
类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的 ...
- Python基础学习参考(六):列表和元组
一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...
- python基础学习笔记(六)
学到这里已经很不耐烦了,前面的数据结构什么的看起来都挺好,但还是没法用它们做什么实际的事. 基本语句的更多用法 使用逗号输出 >>> print 'age:',25 age: 25 ...
- Day8 - Python基础8 异常处理、反射、单例模式
本节内容: 1:异常处理 2:反射 3:单例模式 1.异常处理 1.异常简介 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户 ...
- Python基础最难知识点:正则表达式(使用步骤)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 正则表达式,简称regex,是文本模式的描述方法.你可以在google上搜 ...
- python基础整理笔记(六)
一. 关于hashlib模块的一些注意点 hashlib模块用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512, MD ...
- python基础篇---列表---知识点回顾
列表:数据的集合,里面可以放任何的数据类型,可进行增删改查等操作 有序列表功能(index是列表的索引值): ①创建:用 [] 表示,里面添加元素,如n2 = [1,2,4,5,5]: 或者 ...
随机推荐
- Linux学习历程——Centos 7 ps命令基础
一.ps命令介绍 ps命令是Process Status的缩写,用于查看系统进程状态,ps命令输出值非常多,通常结合管道符使用. 二.实例 1.我们直接输入ps命令,不加任何参数. 可以看到默认输出4 ...
- Lua代码规范
以下规范,是在Unity中使用Lua做为开发语言,仅供参考. 1.格式规范 1. lua文件名统一小写,中间一律不加下划线分割 2. 类名首字母大写,多个词组成的类名,每个词的首字母大写,中间一律不加 ...
- C++ 标准 和 C 标准 (截止到2019年03月)
C++ 标准:维基百科 Year C++ Standard Informal name 1998 ISO/IEC 14882:1998[23] C++98 2003 ISO/IEC 14882:200 ...
- shell重定向介绍及使用
我们在写脚本或用脚本时,往往会发现 > /dev/null 2>&1 这类的命令.之前都是简单的了解一下,并没有深度消化,直到自己写脚本时,不认真写成了2>&1 &g ...
- Google开源GSON的使用
* 谷歌开原项目GitHub地址:https://github.com/google/gson 1.新建一个maven项目,引入gson的dependency坐标依赖以及commons-io的坐标: ...
- node基础—概述与安装
什么是Nodejs 简单的说 Node.js 就是运行在服务端的 JavaScrip(编写高性能网络服务器的JavaScript工具包(用js开发服务端程序))t. JS是脚本语言,脚本语言都需要一个 ...
- bs4 解析 以及用法
bs4解析 bs4: 环境安装: lxml bs4 bs4编码流程: 1.实例化一个bs4对象,且将页面源码数据加载到该对象中 2.bs相关的方法或者属性实现标签定位 3.取文本或者取属性 bs的属性 ...
- php面试题整理(一)
str_split() print_r(str_split("Shanghai"));Array ( [0] => S [1] => h [2] => a [3] ...
- 【转】AJAX发送 PUT和DELETE请求注意事项
jax使用restful服务发送put 和 delete 请求时直接传参会出现问题 一,采用POST + _method:delete/put + filter 的方法ajax发送put 和 de ...
- 【转】svn冲突问题详解 SVN版本冲突解决详解
(摘自西西软件园,原文链接http://www.cr173.com/html/46224_1.html) 解决版本冲突的命令.在冲突解决之后,需要使用svnresolved来告诉subversion冲 ...