#1数据类型的补充
#2.集合set
#3.深浅copy
补充:
str --> bytes s.encode('gbk')
bytes --> str s.decode('gbk')
1.数据类型的补充.
str :
isspace 判断是不是空格.
list:
再循环一个列表时候,进行删除的动作时候,容易出错.一旦删除索引将会改变,所以才会报错
1,反向删除
2.增加替换
3.增加删除,两个for循环
4.步长删除.
li = ['老男孩', 'python', 'alex', 'wusir', 'egon', 'ritian', '女神']
dict:
由于索引和无序的原因,对字典进行循环增删的时候会报错,单独建立一个列表,将要删除的元素单独列到列表中,再进行字典删除,才能避免报错。
元祖:
str --> 元祖 强行转化
元祖 --> str ''.join(tuple) #所有可迭代的对象都能够转化为str,利用join
2.集合(set)
set = {11,22,33,44,55}
主要两个大功能:
1,由于集合自动去重复的功能,转化为set后能够直接去掉重复的内容
2.集合交集并集差集超集子集
1 set = {2,4,6,8,9,1,3,9,7} 2 set2 = {11,12,13,15,16,17} 3 4 print(set & set2)#交集 5 print(set ^ set2)#反交集 6 print(set | set2)#并集 7 print(set - set2)#差集 8 print(set.issubset(set2))#子集 9 print(set.issuperset(set2))#超集
#增:
#add添加元素,
set = {2,4,6,8,9,1,3,9,7} set2 = {11,12,13,15,16,17} set.add('w') print(set) #{1, 2, 3, 4, 6, 7, 8, 9, 'w'}
#update 迭代添加
set = {2,4,6,8,9,1,3,9,7} set.update('wsb') print(set) #{1, 2, 3, 4, 6, 7, 8, 9, 's', 'b', 'w'}
#删:
#pop() 无需随机删除(不确定)
set = {2,4,6,8,9,1,3,9,7} set.pop() print(set) #{2, 3, 4, 6, 7, 8, 9}
#clear()清空如同列表和字典
#del ()整个删除
#remove() 元素删除
1 set = {2,4,6,8,9,1,3,9,7} 2 3 set.remove(2) 4 5 print(set) 6 7 #{1, 3, 4, 6, 7, 8, 9}
#无法修改
#查
#for 循环查看
3.深浅copy
赋值运算:
1 l1 = [1,2,3] 2 3 l2 = l1 4 5 l2.append(111) 6 7 print(l1,l2) 8 结果相同
浅copy:
1 l1 = [1,2,[1,2,3],3] 2 3 l2 = l1[:]/l1.copy 4 5 l2[2].append(111) 6 7 l2.append(111) 8 9 print(l1,l2)
此时是浅copy 不是赋值运算.
深copy:
1 import copy 2 3 l1 = [1,2,[1,2,3],3] 4 5 l2 = copy.deepcopy(l1) 6 7 l2[2].append(111) 8 9 print(l1,l2)
赋值运算是完全公用内存地址
浅copy是在第一层不会公用地址,而在多层的情况下除开第一层,其它层都会公用一个内存地址
深copy则是完全独立的一个新的储存位置,不会公用地址.