第七天 1.基础数据类型的补充 2.set集合 3.深浅拷贝
·一.基础类型补充
1.1Join
join 把列表变成字符串 split 把字符串变成列表
1.2.列表在循环时删除
(list(列表)和(dict(字典))的原理是一样的)
分析原因:
for的运行过程. 会有⼀个指针来记录当前循环的元素是哪一个, ⼀开始这个指针指向第0个.然后获取到第0个元素.
紧接着删除第0个. 这个时候. 原来是第一个的元素会自动的变成第0个.然后指针向后移动⼀次, 指向1元素. 这时原来的1
已经变成了了0, 也就不会被删除了.
循环删除,不论用del 还是 remove都删除不了,试试pop
只有利用for循环和range结合使用,才可以删除,而且是从后往前删
由于删除元素会导致元素的索引改变, 所以容易出现问题. 尽量不要再循环中直接去删除元素.
可以把要删除的元素添加到另一个集合中然后再批量删除. (list在循环的时候不能被删除,因为会改变索引)
如下示例1:删除li=[11,22,33,44,]中的所有元素
示例2:删除列表中姓“周“的名字
字典(dict)中的fromkey(), 可以帮助我们通过list来创建一个dict
前面的列表中的每一项都会作为key,后面列表的内容都会作为value,生成dict
1.3字典在循环中的删除
字典(dict)中的元素在迭代过程中是不予许进行删除的
解决办法:
把要删除的元素暂时先保存在一个list中,然后循环list,在删除
如下示例:删除字典中带有“k“的元
类型转换:
元祖 ——> 列表 list(tuple)
列表——> 元祖 tuple(list)
list ——> str str.join(list)
str ——> list lstr.split()
转换成False的数据: 0, ‘’ , None, [] , (,), {}, set() --> False
二.Set集合
set集合是python的一个基本数据类型. 一般不是很常用 . set中的元素是不重复的.⽆序的.里面的元素必须是可hash的(int, str, tuple,bool),
我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也⽤用{}表⽰示
set 中的元素是不重复的,且无序的
根据set中的值不能重复,可以使用set来去掉重负值
如下示例:
三.深浅拷贝
赋值:
浅拷贝:只会拷贝第一层,不会拷贝第二层的内容,所以被称为浅拷贝
深度拷贝:对象中的所有的内容都会被拷贝一份
Import capy
Copy.deepcopy()
深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产⽣一个改变另一个跟着改变的问题