fromkeys语法/set集合/深浅拷贝/列表/字典的删除

fromkeys语法:
 dic = {"apple":"苹果", "banana":"香蕉"}
 返回新字典. 和原来的没关系
 ret = dic.fromkeys('orange',['橘子,栀子']) # 直接用字典去访问fromkeys不会对字典产生影响
 a = ["哈哈","呵呵", "吼吼"]
 ret = dict.fromkeys("abc",a) # fromkeys直接使用类名进行访问
 a.append('嘻嘻')
 print(ret)
set集合   #集合中的元素必须是可哈希的,不重复的,可以用来去重
 s = {"周杰伦", "的老婆", "叫昆凌", (1, 2, 3), "周杰伦"}
 a = set(s)  #去重
 print(a)
{'周杰伦', '叫昆凌', '的老婆', (1, 2, 3)}

 lst = [11,5,4,1,2,5,4,1,25,2,1,4,5,5]
 a = set(lst)  #把列表转化成集合,进行去重复
 lst = list(a)  #把集合转化成想要的列表类型
 print(lst)
[1, 2, 4, 5, 11, 25]
 集合本身是可变的数据类型, 不可哈希, 有增删改查操作
 s = {"刘嘉玲", '关之琳', "王祖贤"}
 s.update(['高圆圆','林志玲'])    # 迭代更新
 print(s)
{'关之琳', '高圆圆', '王祖贤', '刘嘉玲', '林志玲'}
 深浅拷贝 lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]] lst2 = lst1[:]   #浅 lst2 = lst1.copy()  #浅 import copy lst2 = copy.deepcopy(lst1) #深

lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
# lst2 = lst1[:] # 浅拷贝
lst2 = lst1.copy() # 浅拷贝
lst1[4].append('小昭')
print(lst2)
['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若', '小昭']]
import copy
# lst2 = copy.deepcopy(lst1)
lst1[4].append('小昭')
print(lst2)
['金毛狮王', '紫衫龙王', '青翼蝠王', '白眉鹰王', ['张无忌', '赵敏', '周芷若']]
1. 赋值操作. 没有创建新对象
2. 浅拷贝. 只拷贝第一层内容. [:]   copy()
3. 深拷贝. 把这个对象内部的内容全部拷贝一份. 引入copy模块. deepcopy()

 

posted @ 2018-08-03 19:16  傻白甜++  阅读(203)  评论(0编辑  收藏  举报
TOP