字符串
join()
格式: "拼接的东西".join(可迭代对象)
可以加列表转换成字符串
lis = ['a','b','c','d']
s = "//".join(lis)
print(s) #结果
a//b//c//d
相反
split() 可以加字符串转换成列表 切割
列表和字典在循环的时候不能直接被删除
需要把要删除的内容记录在新的列表中
然后循环新列表,删除字典或列表
例如
lis = ['a','b','c','d','e']
for i in lis:
lis.remove(i)
print(lis) # 删除不完
lis1 = []
for i in lis:
lis1.append(i) #创建新列表
for a in lis1:
lis.remove(a) #删除旧列表
print(lis)
字典也同上
总结 : 字典和列表都不能在循环的时候进行删除, 字典在循环的时候不允许改变大小
集合
特点 : 无序的 不重复 元素必须可哈希(不可变)
作用 : 去重复
s = [1,2,3,1,3,4,5,3,5,6,1,77,78,1,8,3,5,6,9,9,99]
a = set(s)
print(a) #{1, 2, 3, 4, 5, 6, 99, 8, 9, 77, 78} 去重复
s = list(a)
本身是可变的数据类型, 有增删改查的操作
增 删
s = {'我','lx','你',}
a = s.pop() #随机删除
a = s.add("他") #添加
s.remove('他') #删除
s.update("ndsad") #迭代添加
print(s)
frozensent() 冻结的集合
set 集合本身是可以改变的 是不可哈希的 我们可以使用frozenset来保存数据,
frozensent是不可改变的也就是一个可哈希的类型
深浅拷贝
重点
1 赋值 没有创建对象, 公用一个对象
2 浅拷贝,拷贝第一层内容,[:]或copy()
3 深拷贝, 拷贝所有内容包括内部所有 引入copy模块,deepcopy()
4 引用 import
import copy # 引用copy 模块
lst = ["赵云",'马可波罗','猴子','孙尚香','公孙离',["吕布",'干将','貂蝉']]
lst1 = lst[:] #浅拷贝
lst2 = lst.copy() #浅拷贝
lst3 = copy.deepcopy(lst) #深拷贝
重点
一个面试题
循环引用 官方文档有写
a = [1,2]
a[1] = a
print(a[1])