python中set(集合),深浅拷贝以及一些补充知识点
1.set集合
特点:无序,不重复,元素必须可哈希(不可变)
作用:去重复
本身是可变的数据类型。有增删改查操作。{集合的增删改查操作应用较少,这里不做详细介绍了(这里的增有一个方法update注意这个是迭代添加)}
frozenset()冻结的集合。不可变,可哈希。
1 s = {"哈哈哈","嘿嘿嘿","呵呵呵"} 2 s1 = frozenset(s) 3 print(type(s1)) #<class 'frozenset'>
2.深浅copy
1>赋值。没有创建新对象,公用同一个对象。
2>浅copy。拷贝第一层内容,这第一层内容创建了新对象。
方法:[:]或者copy()
3.深copy。拷贝所有内容,包括内部的所有。
方法:首先要引入copy模块
import copy
copy.deepcopy
3.str中的join方法:
str中的join方法,把列表转变成字符串。前面的str中的split(),是将字符串变成列表。
join(可迭代对象)
4.列表和字典在循环的时候不能直接删除(字典在循环中是不能改变的),需要把删除的内容记录在新列表中,然后循环新列表,删除字典或列表。
1 lst = ["紫云", "大云", "玉溪", "紫钻","a","b"] 2 lst1 = [] 3 for el in lst: 4 lst1.append(el) 5 for el in lst1: 6 lst.remove(el) 7 print(lst) #[]
5.fromkeys()
dict.fromkeys(key,value)
1>直接用类名(dict)调用
2>返回新字典,对原字典没有影响
3>后面的value是多个key共享一个value 在这个方法中的key是一个可迭代对象
1 a = ["哈哈","呵呵", "吼吼"] 2 ret = dict.fromkeys("abc", a) 3 a.append("嘻嘻") 4 print(ret) 5 #{'a': ['哈哈', '呵呵', '吼吼', '嘻嘻'], 'b': ['哈哈', '呵呵', '吼吼', '嘻嘻'], 'c': ['哈哈', '呵呵', '吼吼', '嘻嘻']}