十、补充数据类型set
set:无顺序的不重复的集合
list---允许重复,修改
tuple--允许重复,不能修改
set----不允许重复的集合
例子:
s=set()
print s l1=[11,22,33,22,11]
l2=(11,22,33,44,22)
l3='12345665'
--------------------------输出
set([])
set([33, 11, 22]) set([33, 11, 44, 22]) set(['1', '3', '2', '5', '4', '6'])
-----------------------------------------------------------------------------------------------------------
#clear清空元素
s={11,22,33}
s.clear()
print s------------------------------------------set([])
====================================
#add想集合中添加元素
s.add(44)
print s
--------------------------
set([])
set([44])
====================================
#copy浅拷贝
b=s.copy()
print b
------------------------- set([44])
====================================
#difference
se={11,22,33}
ms={22,55}
print se.difference(ms) #找se中存在的,ms中不存在的
print ms.difference(se) #找ms中存在的,se中不存在的
-------------------------
set([33, 11])
set([55])
====================================
#difference_update
se={11,22,33}
ms={22,55}
print se.difference_update(ms) #找se中存在的,ms中不存在的,并把se更新
print se,ms
se={11,22,33}
ms={22,55}
print ms.difference_update(se) #找ms中存在的,se中不存在的,并把ms更新
print se,ms
-------------------------
None
set([33, 11]) set([22, 55])
None
set([33, 11, 22]) set([55])
====================================
#discard 移除
se={11,22,33}
se.discard(11)
se.discard(66) #元素不存在不报错
#se.remove(66) #元素不存在报错
print se
-------------------------
set([33, 22])
====================================
#intersection 交集
se={11,22,33}
be={22,95,"随便"}
print se.intersection(be)
-------------------------
set([22])
====================================
#intersection_update 取交集并把自己更新成交集
se={11,22,33}
be={22,95,"随便"}
se.intersection_update(be)
print se
-------------------------
set([22])
====================================
#isdisjoint有交集是false,没有交集数true
se={11,22,33}
be={22,95,"随便"}
print se.isdisjoint(be)
-------------------------
False
====================================
#issubset,issuperset子序列,父序列
se={11,22,33}
be={22,33}
print be.issubset(se)
print se.issuperset(be)
-------------------------
True
True
====================================
#pop移除
se={11,22,33}
se.pop()
print se
-------------------------
set([11, 22])
====================================
#symmetric_difference对称交集
se={11,22,33,44}
be={11,22,55,66}
r1=se.difference(be)
r2=be.difference(se)
print (r1,r2)
ret=se.symmetric_difference(be)
print ret
-------------------------
(set([33, 44]), set([66, 55]))
set([33, 66, 44, 55])
====================================
#symmetric_difference_update对称交集,并更新se
se={11,22,33,44}
be={11,22,55,66}
se.symmetric_difference_update(be)
print se
-------------------------
set([33, 66, 44, 55])
====================================
#union并集
se={11,22,33,44}
be={11,22,55,66}
print se.union(be)
-------------------------
set([33, 66, 11, 44, 22, 55])
====================================
#update更新
se={11,22,33,44}
se.update([444,555,666])
print se
-------------------------
set([33, 555, 11, 44, 22, 666, 444])
====================================
深拷贝,浅拷贝
import copy n1=123
n2=copy.copy(n1)
print n2,id(n1),id(n2)
n3=copy.deepcopy(n1)
print n2,id(n1),id(n3) #浅拷贝,在内存中只额外创建第一层数据
#深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)
n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
n2=copy.copy(n1)
print n2,id(n1),id(n2)
-----------------------------------------------------------------------------------------------------------
十、补充数据类型set的更多相关文章
- day07补充-数据类型总结及拷贝
目录 数据类型总结 按照存一个值 OR 多个值来分 按照有序 OR 无序来分 按照可变 OR 不可变来分 拷贝 && 浅拷贝 && 深拷贝&& .cop ...
- javacsript (十) 数据类型
类型声明的时候,直接使用 var varname=xxx 数字.字符.布尔,声明都直接使用var就可以, JavaScript 数组 下面的代码创建名为 cars 的数组: var cars=new ...
- [十]基础数据类型之Unicode编码简介
编码含义 关于编码的含义,之前也说过,计算机只能存储二进制序列 所以对于字符,保存的时候,需要进行编码为二进制,进行存储 呈现的时候,需要将二进制进行解码,转换成字符的形式 有很多种编码方式,比如 ...
- 19-3-7Python中小数据池、数据类型的补充、set集合
一.小数据池(了解) “id” 获取内存地址 “==” 比较等号两端的值是否相等 “is” 身份运算:判断的是两个对象的内存地址是否相同. 代码块:一个文件就是一个代码块.(函数.类都是 ...
- python02---基础数据类型
python02---基础数据类型 一. 什么是数据类型 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,&quo ...
- Python的常用内置函数介绍
Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...
- Es5 - 11 详解
一.ES简介 ECMAScript,欧洲计算机制造商协会 ES是一种标准,而JS是ES的一种实现 每年的ES版本中都会引入新特性 二.NRM的安装与使用 NRM是切换源的工具 ES6 2.1安装 wi ...
- IOS开发基础知识--碎片5
二十三:addSubview和insertSubview 区别 addSubview 是将view加到所有层的最顶层 相当于将insertSubview的atIndex参数设置成view.subvie ...
- Python基础1
本节内容2016-05-30 Python介绍 发展史 Python 2 0r 3? 安装 Hello word程序 变量 用户输入 模块初识 .pyc? 数据类型初识 数据运算 if...else语 ...
随机推荐
- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'p.knowlege_part_id' in 'field list'
MyBatis中,出现Unknown column的提示是mapper.xml中的数据库字段写错了. 错误示例: XxMapper.xml中 <sql id="KnowlegeSect ...
- 并发编程时守护进程在pycharm与python shell中的运行结果不同
原代码如下 from multiprocessing import Process import time import random def task(name): print('%s is run ...
- 动态规划(股票交易)---只能进行 k 次的股票交易
只能进行 k 次的股票交易 188. Best Time to Buy and Sell Stock IV (Hard) 题目描述: 只能进行K次股票交易,求能获得的最大利润 思路分析: 和只 ...
- quartz的学习和简单使用
以前在框架中使用过,很多都是纯粹的复制粘贴,了解过用法知道如何配置,但时间久了就没什么印象了,现在重新捡起来,再次进行学习. quartz相关的介绍都已经很多了,我就不重复啰嗦,简单说一下个人的认识和 ...
- 卷积神经网络基础(CNN)【转载】
作者: Sanjay Chan [ http://blog.csdn.net/chenzomi ] 背景 之前在网上搜索了好多好多关于CNN的文章,由于网络上的文章很多断章取义或者描述不清晰,看了很多 ...
- WPF游戏,使用move游戏开发
我看了好多游戏的源码,其实每一个,我想做,rpg的都需要移动,那么wpf,win8应用,数据绑定,我们需要一个Thread来让人物移动. 于是用move. 在每个人物,自己和敌人,npc类,都有一个m ...
- 牛客练习赛49 B 筱玛爱阅读 (状压DP,子集生成)
链接:https://ac.nowcoder.com/acm/contest/946/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262875K,其他语言5257 ...
- ubuntu不能登陆
开机按shift,找到之前的内核版本或者recovery 安装vmtools 报错Not enough free space to extract VMwareTools 解决办法:将此文件夹复制到另 ...
- 关于数据库抛出异常:Incorrect string value: '\xE1\x...' for column '字段名' at row 1 问题的解决方法
打开sql,进行语句编辑 ENGINE=InnoDB DEFAULT CHARSET=utf8;字符集设置utf-8编码
- linux-lampweb
http://www.lampweb.org/linux/2/6.html