1 str中的join方法,把列表转换成字符串
s = "**".join(["哈哈", "嘻嘻", "哈哈"])
print(s)
2 列表和字典在循环的时候不能直接被删除
1 lst = ["紫云","大云","玉溪","紫砖","a","b"]
lst.clear()
2 new_lst = []
for el in lst:
new_lst.append(el)
for el in new_lsts:
lst.remove(el)
print(lst)
print(new_lst)
需要把要删除的内容记录到新列表中,然后循环新列表,删除字典或列表
lst = ["张国荣","张铁林","张国立","张曼玉","汪峰"] #删除姓张的
zhangs = []
for el in lst:
if el.starswith(""张)
zhangs.append(el)
for el in zhangs:
lst.remove(el)
print(lst)
print(zhangs)
dic = {"提莫":"冯提莫","发姐":"陈一发","55开":"卢本伟"}
dic.clear() #直接删除
lst[]
for k in dic :
lst.append(k)
for el in lst:
dic.pop(el)
print(dic) #综上述 列表和字典都不能在循环中进行删除,字典再循环的时候不予许改变大小
3 fromkeys()
dic ={"apple":"苹果","banana":"香蕉"}
# 返回新字典,和原来的没有关系
ret = dic.fromkeys("orange","橘子") #直接用字典去访问fromkeys不会对字典产生任何影响
ret = dict.fromkeys("abc",["哈哈","呵呵","嘿嘿"]
print(ret) #fromkeys 直接使用类名去访问
1 返回新字典 对原字典没有影响
2 后面的values 是多个key共享一个value
二 set集合
特点 :
无序 不重复 元素必须是哈希(不可变)
s = {"周杰伦","昆仑","坤琳",(1,2,3),"周杰伦"}
lst = [11,22,33,55,6,7,88,9,10,11,22]
s = set(list) #把列表转换成集合,进行去重复
lst = list(s)
print(lst)
作用:
去重复
本身是可变的数据类型 有增删改查操作
s = {"刘嘉玲",关之琳","王祖贤"}
s.update("马化腾") #迭代更新
print(s)
frozenset()冻结的集合,不可变的 可哈希的
三 深浅拷贝
1 赋值 没有创建新对象 公用一个对象
2 浅拷贝 拷贝第一层的内容 [:] 或 copy()
lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
lst2 = lst1[:] #浅拷贝
lst2 = lst1.copy() #浅拷贝
lst2 = copy.deepcopy(lst1)
print(lst1)
print(lst2)
# 1 赋值操作 没有创建新对象
2 浅拷贝 只拷贝第一层内容 [:] copy()
3 深拷贝 把这个对象内容全部拷贝一份,引入copy模块 deepcopy()
3 深拷贝 拷贝所有内容 包括内部的所有