python基础七--集合
12.22
1、昨日内容回顾
小数据池:int:-5--256str:1.不能有特殊字符2.*int不能超过20编码:所能看到的最小构成单位叫字符ascii : 8位 1字节 表示1个字符unicode 32位 4个字节 表示一个字符utf- 8 1个英文 8位,1个字节欧洲 16位 两个字节 表示一个字符亚洲 24位 三个字节 表示一个字符gbk 1个英文 8位,1个字节亚洲 16位 两个字节 表示一个字符bytes:s = 'alex'b = s.encode('utf-8')print(b) # b'alex'
2、今日内容讲解
1.基础数据类型汇总补充
str
int
list
在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错。
bool
dict
1,fromkeys()
tuple元祖
如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。
2、集合
可变的数据类型,他里边的元素必须是不可变的数据类型,无序,不重复
(1)创建集合
set1 = set({1,2,3,}) print(set1)
(2)增删查
增
set1 = {'alex','wusir','ritian','egon','barry'} set1.add("jing") set1.update("kkkk") print(set1)
删
set1.pop() set1.remove("alex") set1.clear() del set1
查
for i in set1:print(i)
(3)集合的操作
交集
set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 & set2) print(set1.intersection(set2))
并集
set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1|set2) print(set1.union(set2))
差集
set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 - set2) print(set1.difference(set2))
反交集
set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 ^ set2) # {1, 2, 3, 6, 7, 8} print(set1.symmetric_difference(set2))
子集与超集
set1 = {1,2,3} set2 = {1,2,3,4,5,6}print(set1 < set2) print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。print(set2 > set1) print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。
去重
li = [1,2,33,33,2,1,4,5,6,6] set1 = set(li) print(set1) li = list(set1) print(li) s1 = {1,2,3} print(s1,type(s1))
3、深浅copy
赋值运算
l1 = [1,2,3,['barry','alex']] l2 = l1l1[0] = 111 print(l1) # [111, 2, 3, ['barry', 'alex']] print(l2) # [111, 2, 3, ['barry', 'alex']] l1[3][0] = 'wusir' print(l1) # [111, 2, 3, ['wusir', 'alex']] print(l2) # [111, 2, 3, ['wusir', 'alex']]
对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的。 浅copy
l1 = [1,2,3,['barry','alex']] l2 = l1.copy() print(l1,id(l1)) # [1, 2, 3, ['barry', 'alex']] 2380296895816 print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2380296895048 l1[1] = 222print(l1,id(l1)) # [1, 222, 3, ['barry', 'alex']] 2593038941128print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2593038941896 l1[3][0] = 'wusir' print(l1,id(l1[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016 print(l2,id(l2[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016
对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
深copy
import copy l1 = [1,2,3,['barry','alex']] l2 = copy.deepcopy(l1)print(l1,id(l1)) # [1, 2, 3, ['barry', 'alex']] 2915377167816 print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2915377167048 l1[1] = 222 print(l1,id(l1)) # [1, 222, 3, ['barry', 'alex']] 2915377167816 print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2915377167048 l1[3][0] = 'wusir' print(l1,id(l1[3])) # [1, 222, 3, ['wusir', 'alex']] 2915377167240 print(l2,id(l2[3])) # [1, 2, 3, ['barry', 'alex']] 2915377167304
对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变
4、补充
枚举:enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
li = ['alex','银角','女神','egon','太白'] for i in enumerate(li): print(i) for index,name in enumerate(li,1): print(index,name) for index, name in enumerate(li, 100): # 起始位置默认是0,可更改 print(index, name)
删除索引为奇数位的元素lis = [11,22,33,44,55]#第一种
lis = [11,22,33,44,55]lis = lis[::2] print(lis)
#第二种
lis = [11,22,33,44,55] l1 = [] for i in lis:if lis.index(i) % 2 == 0:l1.append(i) lis = l1 print(lis)
View Code
#第三种
lis = [11,22,33,44,55] for i in range(len(lis)-1,-1,-1):if i % 2 == 1:print(i)del lis[i]print(lis) print(lis)
View Code
转载于:https://www.cnblogs.com/TheLand/p/8086013.html
python基础七--集合相关推荐
- Python基础——数据类型—集合
Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...
- Python基础之集合
定义:'''集合(Set) 集合是无序和无索引的集合.在 Python 中,集合用花括号编写.''' 1,创建集合 set_baby = {'牛犊', '羊仔', '小熊猫', '小猪熊'} prin ...
- python基础之集合运算
博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...
- 01.Python基础-3.集合容器
1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...
- Python基础:集合与文件操作
集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...
- 最新最全的python 基础知识集合
1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2.简 ...
- Python基础---容器集合Set
集合Set(无序集合) 定义:一组包含具有唯一性元素,且无序的数据. 其中的元素可以是int,float,bool,string,tuple,冰冻集合.复数等 集合中的元素,无法进行修改 创建: ...
- (Python基础)集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 以下代码演示了去重,增删改查,以及关系测试供参考学习 ...
- Python基础七(函数)
函数概述 函数:组织好的.可重复使用的.杉树能提高应用的模块性和代码的重复利用性.Python提供了很多的内置函数,比如len()等等,可以自行定义函数. 函数的定义 def 函数名(参数列表): ...
最新文章
- vo生成MySQL表_跟我学微服务统一开发平台-代码生成器
- 爱摸鱼的Dillonh
- 对Spring事务一些问题的讨论
- Openfiler的安装和配置
- 音视频技术开发周刊 | 136
- linux中sort命令实例,Linux命令之排序命令sort使用实例
- 防火墙高可用性(HA)
- spring第二冲刺阶段第七天
- oninput和onpropertychange以及其兼容处理
- java 图片缩放 模糊问题_java – PDFBox中的缩放图像模糊
- 苹果要求添加手机号且忘记安全提示问题解决办法
- 深度强化学习系列(6): DQN原理及实现
- Windows7下pip安装包报错 Microsoft Visual C++ 9 0 is required Unabl
- DVWA File upload 一句话木马
- PyTorch 2.0 重磅发布:一行代码提速 30%
- HDFS的Shell操作和API操作
- 第9届全国大学生 GIS 技能大赛下午试题详解(下)附练习数据
- 探索者系列_百度百科
- Nat. Commun. | 从单细胞转录组数据中学习可解释的细胞和基因签名嵌入
- 发票自动处理——摆脱纸张和数据输入的束缚,自动化工作流程和异常处理,大幅缩短审核准备时间
热门文章
- PHP 的 empty 和 isset 对比
- redis sentinel集群与spring集成
- Redis info信息(转载)
- 一:HTTP协议(超详解)
- cts测试linux指令skip,linux – dd命令中seek和skip之间有什么区别?
- linux如何打开dhcp服务,怎么开启DHCP服务器啊
- 2005服务器文件夹网页设设置,设置VSS2005使支持通过Internet访问
- 三星linux打印机驱动官网下载,三星SL-C515驱动
- 无连接可靠传输_计算机网络-网络层和传输层
- ionic3 html调用摄像头,ionic3懒加载中使用自定义组件component