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基础七--集合相关推荐

  1. Python基础——数据类型—集合

    Python基础--数据类型-集合 Python基础--数据类型-集合 创建集合 快速查看元素是否在集合内 两个集合间的运算 集合a中包含,而集合b中不包含的元素 集合a或集合b中包含的所有元素 集合 ...

  2. Python基础之集合

    定义:'''集合(Set) 集合是无序和无索引的集合.在 Python 中,集合用花括号编写.''' 1,创建集合 set_baby = {'牛犊', '羊仔', '小熊猫', '小猪熊'} prin ...

  3. python基础之集合运算

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  4. 01.Python基础-3.集合容器

    1 列表list 1.1 列表介绍 Python内置的一种数据类型是列表:list. 有序的集合,可随时添加和删除其中的元素. 每个元素都分配一个数字 --它的位置,或索引.0,1,2,3-- 可存放 ...

  5. Python基础:集合与文件操作

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  6. 最新最全的python 基础知识集合

    1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2.简 ...

  7. Python基础---容器集合Set

    集合Set(无序集合) 定义:一组包含具有唯一性元素,且无序的数据.    其中的元素可以是int,float,bool,string,tuple,冰冻集合.复数等 集合中的元素,无法进行修改 创建: ...

  8. (Python基础)集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 以下代码演示了去重,增删改查,以及关系测试供参考学习 ...

  9. Python基础七(函数)

    函数概述 函数:组织好的.可重复使用的.杉树能提高应用的模块性和代码的重复利用性.Python提供了很多的内置函数,比如len()等等,可以自行定义函数. 函数的定义 def 函数名(参数列表):  ...

最新文章

  1. vo生成MySQL表_跟我学微服务统一开发平台-代码生成器
  2. 爱摸鱼的Dillonh
  3. 对Spring事务一些问题的讨论
  4. Openfiler的安装和配置
  5. 音视频技术开发周刊 | 136
  6. linux中sort命令实例,Linux命令之排序命令sort使用实例
  7. 防火墙高可用性(HA)
  8. spring第二冲刺阶段第七天
  9. oninput和onpropertychange以及其兼容处理
  10. java 图片缩放 模糊问题_java – PDFBox中的缩放图像模糊
  11. 苹果要求添加手机号且忘记安全提示问题解决办法
  12. 深度强化学习系列(6): DQN原理及实现
  13. Windows7下pip安装包报错 Microsoft Visual C++ 9 0 is required Unabl
  14. DVWA File upload 一句话木马
  15. PyTorch 2.0 重磅发布:一行代码提速 30%
  16. HDFS的Shell操作和API操作
  17. 第9届全国大学生 GIS 技能大赛下午试题详解(下)附练习数据
  18. 探索者系列_百度百科
  19. Nat. Commun. | 从单细胞转录组数据中学习可解释的细胞和基因签名嵌入
  20. 发票自动处理——摆脱纸张和数据输入的束缚,自动化工作流程和异常处理,大幅缩短审核准备时间

热门文章

  1. PHP 的 empty 和 isset 对比
  2. redis sentinel集群与spring集成
  3. Redis info信息(转载)
  4. 一:HTTP协议(超详解)
  5. cts测试linux指令skip,linux – dd命令中seek和skip之间有什么区别?
  6. linux如何打开dhcp服务,怎么开启DHCP服务器啊
  7. 2005服务器文件夹网页设设置,设置VSS2005使支持通过Internet访问
  8. 三星linux打印机驱动官网下载,三星SL-C515驱动
  9. 无连接可靠传输_计算机网络-网络层和传输层
  10. ionic3 html调用摄像头,ionic3懒加载中使用自定义组件component