set  集合    
列表、元组、字符串去重
集合中的元素必须是可哈希(hash)的,但set本身是不可哈希的可变的(有增删改查)、不重复、无序的  
创建一个空集合 s = set{}
1、关系型数据的交集,并机,差集,子集
set1 = {1, 'alex', Fslse, (1,2,3)}
2、列表、元组、字符串 去重,
list 1= [1, 1, 1, 3,4 ,4 ,43, 3,5,6]
set = set(list1)  <---转换成集合就会去重,但返回集合类型
list2 = list(set)  强制转换回成list列表型
 frozenset()  冻结的集合. 不可变的. 可哈希的
set的方法:很少用 
set.pop()   或  pop(set)      随机删除一个元素
set.clear()                          清空集合 print(set)
set.add('666')                    print(set) 增加一个元素
set.update()                      迭代更新插入
set.remove()                      
集合方法
|      并集   多个集合元素合一起并去重
&    交集   取共有部分
-     差集   pythons - linuxs
小数据池,在一定情况下出现内存共享,为了节约内存(只有int  和 str 才有的,在字典中也会出现),解决小数据池的问题,通常要想到用深浅copy
https://www.cnblogs.com/Mr-wangxd/p/9407164.html  内有is ==的例子,所有操作在终端进行,pycharm会改变结果
is 和 ==的区别
id()     打印数据的地址
a  = 'hello'
b = 'hello'
print(a == b)    返回True    比较的是数值
print(a is  b)      返回False   比较的是地址,判断是否是同一个对象,看地址方法 print(id(a), id(b))
字符串中如果有特殊字符他们的内存地址就不一样
注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址 
int类型中  -5 ~ 256之间的数 相同的数全都指向一个内存空间。
字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
a = 'A' * 20  ;  b = 'A' * 20   a is b ==>True
str类型    单个字符乘以20以内的数字都在同一内存地址;只要字符串含有数字那就不共用内存,不会出现小数据池
a = [1, 2, 3]
b = a
c = b           print(a is c) ==>True   如果c改变 a也会改变  很坑!!!a = [1, 2, 3]
c = [1, 2, 3]   print(a is c) ==>True
#赋值运算他们共用一个列表
a = [1, 2, 3]
b = a
a.append(666)
print(a, b)
输出:a==[1, 2, 2, 777] b==[1, 2, 2, 777]

深浅copy        无论深浅拷贝复制后的地址与源地址不同

浅copy   从第二层开始以后共用内存,第一层各自用各自的
浅拷贝两种方式  
1、 list2 = list1[:]
2、#.copy()             作用域   作用??????????
list1 = [1, 2, 3, [4, 5]]
list2 = list1.copy()
list1[-1].append(666)
print(list1, list2)                     #返回[1, 2, 3, [4, 5], 666] [1, 2, 3, [4, 5]]           返回是不同的,说明不共用同一段内存
list[-1].append(666)
print(list1, list2)                    # 返回 [1, 2, 3, [4, 5, 666]] [1, 2, 3, [4, 5, 666]]   返回是相同的 说明从第二层以后共用同一段内存

深copy   需要导入模块import  copy, 所有都不共用内存,无论几层都是各自用各自的内存

#deepcopy()      作用域   作用?
import copy
list1 = [1, 2, 3, [4, 5]]
list2 = copy.deepcopy(list1)
list1[-1].append(666)
print(list1, list2)
list[-1].append(666)
print(list1, list2)                      #所有返回结果都是不同的

转载于:https://www.cnblogs.com/Mr-wangxd/p/9418693.html

集合 小数据池 深浅拷贝相关推荐

  1. python拷贝文件函数_python笔记2小数据池,深浅copy,文件操作及函数初级

    小数据池就是在内存中已经开辟了一些特定的数据,经一些变量名直接指向这个内存,多个变量间公用一个内存的数据. int: -5 ~ 256 范围之内 str: 满足一定得规则的字符串. 小数据池: 1,节 ...

  2. 21天学通python电子版-小数据池,深浅拷贝,集合+菜中菜

    小数据池,不同代码块的缓存机制,也称为小整数缓存机制,或者称为驻留机制等等,博主认为,只要你在网上查到的这些名字其实说的都是一个意思,叫什么因人而异. 那么到底什么是小数据池?他有什么作用呢? 前提条 ...

  3. dya6小数据池、集合、编码、深浅copy

    一.小知识点: 1.id:测试内容的内存地址 s = 'abc' print(id(s) >>> 2174306953568 2.is:判断内存地址是否相等 s = 'abc' s1 ...

  4. 相识python 之小数据池 集合

    ⼀一. ⼩小数据池 在说⼩小数据池之前. 我们先看⼀一个概念念. 什什么是代码块: 根据提示我们从官⽅方⽂文档找到了了这样的说法: A Python program is constructed fr ...

  5. 小数据池与文件的操作

    目录 一,小数据池和深浅拷贝 二,文件操作 一,小数据池和深浅拷贝 小数据池 小数据池:⼀种数据缓存机制. 也被称为驻留机制. 各⼤编程语⾔中都有类似的东⻄.用于提高效率. 支持的数据类型:str,i ...

  6. python小学生课本剧_小学生都能学会的python(小数据池)

    小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...

  7. 小数据池 is和== 再谈编码

    昨日回顾 上节课内容回顾1. 字典{key:value, key:value.....}成对的保存数据字典没有索引. 不能切片, 字典的key必须是可哈希的.不可变的1. 增加:dic[新key] = ...

  8. 【Python21天学习挑战赛】字典 小数据池

    ​ ​ 活动地址:CSDN21天学习挑战赛 ​ 开头一叙: 无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍.跟着大佬,让pyt ...

  9. python代码块-python小数据池,代码块的最详细、深入剖析

    一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是 ...

最新文章

  1. 登陆窗体显示动态效果
  2. MQTT服务器搭建--Mosquitto用户名密码配置
  3. Redis 4.x/5.x未授权访问漏洞
  4. 科目移动类型替代规则总结
  5. linux中如何查看某个端口是否被占用,LINUX中如何查看某个端口是否被占用
  6. matlab 函数优化问题,matlab求解最优化问题 Matlab在最优化问题中的应用举例.doc
  7. java char数组查找_我爱java系列---【在字符数组中查询某个字符串是否存在】
  8. Spring boot集成Swagger3
  9. Eclipse中的Web项目自动部署到Tomcat
  10. 想学习C++,C++的未来怎么样?
  11. 装CGAL与解决QWidget: Must construct a QApplication before a QPaintDevice. 问题
  12. codeproject
  13. 小型局域网环境下搭建的文件中转系统
  14. 浅谈视频编解码器的工作原理和应用领域
  15. Unity:动态加载游戏等级.
  16. MTK样机抓取log
  17. gitee上传大小超过100M文件
  18. 【分享】北京社保查询API
  19. 深度学习从入门到精通——图像分割之DeepLab系列算法
  20. 2019-04-28 21:43:41.098 ERROR 2920 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] :

热门文章

  1. ZooKeeper官方文档学习笔记03-程序员指南
  2. 【❤️万字长文总结❤️】一篇学会Redis高可用✔集群✔搭建详细教程
  3. 【渗透测试】—如何利用文件包含的方式进行攻击
  4. 3个最典型的图表错误使用方式,赶紧看看自己是否中招
  5. 大数据总监python可视化分析30W数据后,找到了抹黑我们的原因
  6. 数据体系建设的开端,该如何规划平台?
  7. 帆软报表属性设计基础
  8. nginx上安装mysql 性能_Linux安装Mysql及Nginx详细步骤
  9. netty支持哪些协议_从零学习netty网络IO通讯开发框架
  10. linux考试中的7654_全国计算机等级考试你了解多少?