首页 > 编程语言 >python基础-set集合,深浅拷贝

python基础-set集合,深浅拷贝

时间:2022-08-26 19:57:30浏览次数:216  
标签:set 删除 python 元素 list dict 拷贝

python基础-set集合,深浅拷贝

 

 一. 基础数据类型补充

  补充给 一个字符串基本操作

 

列表:

  循环删除列表中的每 一个元素

 

分析原因:

for的运行过程. 会有 一个指针来记录当前循环的元素是哪 一个,  一开始这个指针指向第0个. 然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第 一个的元素会自动的变成第0个. 然后指针向后移动 一次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了了.

 

  删除试试看:

 

经过分析发现. 循环删除都不 行. 不论是用del还是 用remove. 都不能实现.那么pop呢?

只有这样才是可以的:

 

或者.  用另 一个列列表来记录你要删除的内容. 然后循环删除

 

注意: 由于删除元素会导致元素的索引改变, 所以容易易出现问题. 尽量量不要再循环中直接去删除元素. 可以把要删除的元素添加到另 一个集合中然后再批量删除.

  dict中的fromkey(),可以帮我们通过list来创建 一个dict

 

前面列表中的每 一项都会作为key, 后面列表中的内容作为value.  生成dict好了. 注意:

 

代码中只是更改了jay那个列表. 但是由于jay和JJ 用的是同 一个列表. 所以. 前面那个改了. 后面那个也会跟着改

dict中的元素在迭代过程中是不允许进行删除的

 

那怎么办呢? 把要删除的元素暂时先保存在 一个list中, 然后循环list, 再删除

 

类型转换:

 

 
元组 => 列表    list(tuple)

列表 => 元组    tuple(list)



list=>str str.join(list)

str=>list str.split()

 

转换成False的数据:

0,'',None,[],(),{},set() ==> False
 

 

 二. set集合

 

set集合是python的 一个基本数据类型.  一般不是很常 用. set中的元素是不重复的. 无序的. 里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表 示

 

注意: set集合中的元素必须是可hash的, 但是set本 身是不可hash得. set是可变的.

 

set中的元素是不重复的, 且无序的.

 

使用这个特性.我们可以使 用set来去掉重复

 

set集合增删改查

1.  增加

 

2.  删除

3. 修改

4.查询

5.常用操作

 

 

 

 set集合本⾝身是可以发生改变的. 是不可hash的. 我们可以使⽤用frozenset来保存数据. frozenset是不可变的. 也就是一个可哈希的数据类型

 

 

 这个不是很不常用,了解即可

 

三. 深浅拷贝

 

对于list, set, dict来说, 直接赋值. 其实是把内存地址交给变量. 并不是复制 一份内容. 所以. lst1的内存指向和lst2是 一样的. lst1改变了, lst2也发生了改变

浅拷贝

浅拷贝. 只会拷贝第 一层. 第二层的内容不会拷贝. 所以被称为浅拷贝

 

深拷贝

 

 

都不一样了. 深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产⽣生⼀个改变另一个跟着改变的问题

补充 一个知识点:

最后我们来看 一个 面试题:

 

标签:set,删除,python,元素,list,dict,拷贝
From: https://www.cnblogs.com/hcx990214/p/16629017.html

相关文章

  • python之文件操作
    万恶之源-文件操作 本节主要内容: 初识文件操作 只读(r,rb) 只写(w,wb) 追加(a,ab) r+读写 w+写读 a+写读(追加写读) 其......
  • python基础-函数
    python基础-函数 一.什么是函数1.我们到目前为止,已经可以完成一些软件的基础功能了.那么我们来完成这样一个功能:约会:  ok.soeasy.我们已经完成了对......
  • Day06集合-Set
    Set接口1.概述无序,五下标,元素不可重复2.Set接口使用/***set接口使用(同collection)*/publicclasssetDemo{publicstaticvoidmain(String[]args){......
  • Python介绍
    python介绍 python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语......
  • Python 50种区分度高的颜色
    importdistinctipyimportnumpyasnpcolors=distinctipy.get_colors(50)np.set_printoptions(precision=3,suppress=True)colors=np.array(colors)print(repr(c......
  • python 比较两个list
    参考1 https://blog.csdn.net/weixin_44151034/article/details/124286429 参考2参考代码defis_diff_ele(list1,list2):"""判断两个列表元素是否一致(......
  • 学习:python 了解多线程
    在计算机处理工作时,有时需要多个任务并行处理进程:是对计算机的程序的依稀运行过程的秒数简单的来说编写完毕的代码,在没有运行的时候,称为程序正在运行着的代码,这个运行......
  • “X-Content-Type-Options”头缺失或不安全,添加Filter后 hsresponse.setHeader("X-Con
    AppScan扫描出的问题:  问题修复,添加Filter: 问题修复后,列表出不来: ......
  • Python_14文件操作
    一、文件操作:Python提供了必要的函数和方法进行默认情况下的文件基础操作。可以用file对象做大部分的文件操作。open函数,你必须先用Python内置的open函数打开一个文件,创建......
  • 理解深浅拷贝
     拷贝不能脱离数据类型来谈数据类型除ES6引入的Symbol和BigInt数据类型,JS数据可大致分为:基本数据类型(String、Number、Boolean、Null、Undefined)和......