一、基础数据类型补充
1.列表转字符串
a='A'.join(['c','c','s']) print(a)
2.循环删除列表中的每⼀一个元素
lst=['asdf','dftgst','zsdrfse'] for i in range(0,len(lst)): lst.pop() print(lst)
3.
类型转换:
元组 => 列列表 list(tuple)
列列表 => 元组 tuple(list)
list=>str str.join(list)
str=>list str.split()
转换成False的数据:
0,'',None,[],(),{},set() ==> False
二、set 集合
1.set:不可重复,无序,里面的元素必须是可哈希的(int, str, tuple,bool),我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表示
2.增
a={'sdfs','sdfsf'} a.add('ad') print(a)
s.update("麻花藤") # 迭代更新
3.删
s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟玉", "李李若彤"}
item = s.pop() # 随机弹出⼀一个.
print(s)
print(item)
s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟玉", "李李若彤"} s.remove( '关之琳') #如果不存在会报错 print(s)
set.clear()#清空列表
4.查
s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟玉", "李李若彤"}
for i in s : print(i)
5.改
# set集合中的数据没有索引. 也没有办法去定位⼀一个元素. 所以没有办法进⾏行行直接修改. # 我们可以采⽤用先删除后添加的⽅方式来完成修改操作 s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李若彤"} # 把刘嘉玲改成赵本⼭山 s.remove("刘嘉玲") s.add("赵本山") print(s)
三、深浅拷贝
lst1 = ["⾦金金⽑毛狮王", "紫衫⻰龙王", "⽩白眉鹰王", "⻘青翼蝠王"] lst2 = lst1 print(lst1) print(lst2) lst1.append("杨逍") print(lst1) print(lst2)
#lst1变lst2也会变
2.浅拷贝. 只会拷贝第一层. 第二层的内容不会拷贝. 所以被称为浅拷⻉.。
lst1 = ["金毛狮王", "紫衫龙王", "白眉鹰王", "青翼蝠王"] lst2 = lst1.copy() lst1.append("杨逍") print(lst1) print(lst2) #lst1变lst2不会变
lst1 = ["金毛狮王", "紫衫龙王", "白眉鹰王",["青翼蝠王"] ] lst2 = lst1.copy() lst1[3].append("杨逍") print(lst1) print(lst2) #lst1变lst2不会变 嵌套里面的数据变了也会跟着变
3.深拷贝--里面嵌套的元素发生改变也不会改变
import copy lst1 = ["何炅", "杜海海涛","周渝⺠民", ["麻花藤", "⻢马芸", "周笔畅"]] lst2 = copy.deepcopy(lst1) lst1[3].append("⽆无敌是多磨寂寞") print(lst1) print(lst2) print(id(lst1[3]), id(lst2[3])) 结果: ['何炅', '杜海海涛', '周渝⺠民', ['麻花藤', '⻢马芸', '周笔畅', '⽆无敌是多磨寂寞']] ['何炅', '杜海海涛', '周渝⺠民', ['麻花藤', '⻢马芸', '周笔畅']] 4447221448 4447233800