深浅拷贝
deepcopy 深拷贝:会递归拿到原值的每一个引用,完全复制一份副本,修改拷贝前的值和拷贝后的值没有联系,相互独立;
copy 浅拷贝:只复制第一层数值的引用,当有数值多层时,不会获取下一层的引用关系;
散列类型(无序):
集合:无序不重复元素的集合,集合是可变的,但集合中的元素必须是不可变类型
空集合的定义方式:set()
1、添加元素:
.add(obj) 像集合中添加一个元素,如果集合中不存在则添加(注意,添加的元素为不可变类型)
.update(iterable) 把可迭代对象的元素依次向集合中添加,如果集合中不存在则添加(注意,添加的元素为不可变类型)
2、删除元素:
随机删 .pop() 随机删除并返回删除的元素,如果集合中元素为空则抛出异常
指定删 .remove(val)删除指定的某个元素,如果不存在会报错
指定删 .discard(ele) 从集合中删除元素ele,如果不存在不会报错
清空 .clear() 清空集合
3、集合运算
交集& 两个集合中共有的部分
并集 | 包含两个集合所有元素
补集 - 补集是相对的,A对B取补集,意思就是取在集合A中不在集合B中的项,称为A相对B的补集
对称差集 ^ 取不在集合AB交集里的元素组成的集合称为对称差集,也叫反交集
字典:
利用集合元素不重复不可变的特性,是集合中的元素映射值组成键值对,在通过键来获取对应的值
因此字典中的建必须是不可变类型,且不会重复
1、增加/修改元素
用key赋值方式添加元素,如果存在key,则是修改,不存在的key会报错
dict.update(new_dict) 将new_dict合并进dict中
2、删除元素
dict.pop(key,[,d]) 删除指定的key对应的值并返回该值,如果key不存在则返回d,如果没有给定d,则抛出异常
dict.popitem() 以LIFO后进先出方式删除字典中的一个键值对,并以二元元组(key,value)返回
3、查询元素
dict.get(key,default=None) 获取key对应的value,如果没有默认返回None
原文:https://www.cnblogs.com/jiandanzhou/p/14857028.html