十、补充数据类型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语 ...
随机推荐
- [LeetCode] 103. 二叉树的锯齿形层次遍历
题目链接 : https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/ 题目描述: 给定一个二叉树,返回其节 ...
- TCP即时小通信
package 第十二章; import java.io.*; import java.net.*; public class TcpServer { public static void main( ...
- tp5 模板参数配置(模板静态文件路径)
tp5 模板参数配置(模板静态文件路径) // 模板页面使用 <link rel="stylesheet" type="text/css" href=&q ...
- STM32内核简介
STM32F407 的内核是cortex-M4 采用的是ARM架构,具体是ARM-V7架构. 而ARM-V7架构分为三个系列: 1>.A系列:面向尖端的基于虚拟内存的操作系统和用户应用: 2 ...
- ID学习一 Basic
Assignment 作用:定义变量并赋值 变量可以是新定义的也可以是已经存在的: 值可以是另一个变量的值.一个文本值.一个复杂的表达式(利用表达式编辑助手构造): 注意:一旦变量被定义,你不能删除变 ...
- 网络流最大流dinic
hdu 6214 #include <bits/stdc++.h> #include<cstdio> #include<cstring> #include<q ...
- ascii 八进制
int main() 4 { 5 char buf[20] = {'\101','\102','\103',0}; 6 printf("%s",buf); 7 return 0; ...
- linux中查找文件
locate arm-none-linux-gnueabi-gcc//有效 find / -name "arm-none-linux-gnueabi-gcc"
- centos 挂载windows 2003 smb
mount -t cifs //10.100.100.250/产品服务器/待测库/FI\ Cloud/CICD/BuildRoot_Dev/ /cicd --verbose -o vers=1.0,u ...
- git 流程 rebase rename
git流程: git init --bare git checkout -b develop git checkout -b feature1 feature1: git add . git comm ...