一、基础数据类型补充
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