07.Pythonset集合,深浅拷?以及部分知识点补充
Posted 微光半夏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07.Pythonset集合,深浅拷?以及部分知识点补充相关的知识,希望对你有一定的参考价值。
⼀. 基础数据类型补充
⾸先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的⾃⼰看⼀看就可以了.
我们补充给⼀个字符串基本操作
列表:
循环删除列表中的每⼀个元素
分析原因:
for的运⾏过程. 会有⼀个指针来记录当前循环的元素是哪⼀个, ⼀开始这个指针指向第0
个. 然后获取到第0个元素. 紧接着删除第0个. 这个时候. 原来是第⼀个的元素会⾃动的变成
第0个. 然后指针向后移动⼀次, 指向1元素. 这时原来的1已经变成了0, 也就不会被删除了.
⽤pop删除试试看:
经过分析发现. 循环删除都不⾏. 不论是⽤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也发⽣了改变
浅拷⻉
都不⼀样了. 深度拷⻉. 把元素内部的元素完全进⾏拷⻉复制. 不会产⽣⼀个改变另⼀个跟着
改变的问题
补充⼀个知识点:
最后我们来看⼀个⾯试题:
以上是关于07.Pythonset集合,深浅拷?以及部分知识点补充的主要内容,如果未能解决你的问题,请参考以下文章