python基础(三)
# set数据类型是无序,不重复的,且里面的值必须是可hash的,不能通过索引来获取set集合中的元素 set1 = {'1','2','ab'} set1.add('cc') print(set1) # result:{'1', 'cc', '2', 'ab'} 向set集合中添加元素 set2 = {'1','2','ab'} set2.update(['a','b','c']) print(set2) # result:{'2', '1', 'b', 'c', 'ab', 'a'} 迭代更新 set3 = {'1','2','ab'} item = set3.pop() print(item) # 随机删除一个元素,clear清空 set4 = {'1','2','ab'} item1 = set4.remove('ab') print(set4,item1) # result:{'2', '1'} None 指定删除一处元素,但返回None,set集合没法直接修改,只能通过remove删除再通过add添加 # set常用操作 s1 = {'a','b','c','d'} s2 = {'d','e','f','g'} # 交集操作 print(s1 & s2) print(s1.intersection(s2)) # result:{'d'} # 并集操作 print(s1 | s2) print(s1.union(s2)) # result:{'a', 'f', 'e', 'g', 'c', 'b', 'd'} # 差集操作,得到第一个中单独存在的 print(s1 - s2) print(s1.difference(s2)) # result:{'c', 'b', 'a'} # 反交集两个集合中单独存在的数据 print(s1 ^ s2) print(s1.symmetric_difference(s2)) # 子集操作 print(s1 < s2) print(s1.issubset(s2)) # result:False 判断s1是否为s2的子集 # 超集操作 print(s1 > s2) print(s1.issuperset(s2)) # result:False 判断s1是否为s2的超集 # set集合本身是可以发生改变的,我们可以用frozenset冻结 # 深浅拷贝 lst1 = ['a','b','c','d'] lst2 = lst1.copy() print(lst1 is lst2) # False,重新拷贝了一份数据生成新的内存地址,浅拷贝只会拷贝第一层数据 import copy lst1 = ['a','b','c','d',['a','b','c','d']] lst2 = copy.deepcopy(lst1) print(lst1[4] is lst2[4]) # False,深层拷贝内部元素完全进行拷贝复制