一.集合
集合的定义
集合(set)是一个无序的不重复元素序列。1,2,3,4,1,2,3=1,2,3,4
创建集合
集合的创建:
1).使用大括号{}或者set0函数创建集合;
2).注意:
·创建一个空集合必须用set0而不是{}
{}是用来创建一个空字典。
去重
集合增删
随机移除元素
关系运算
排序
fronzenset
frozenset是set的不可变版本,因此set集合中所有能改变集合本身的方法(如add、remove、discard、xxx_update等),frozenset 都不支持;set集合中不改变集合本身的方法,fronzenset都支持。
作用:
rozenset的这些方法和set 集合同名方法的功能完全相同。frozenset的作用主要有两点:
·当集合元素不需要改变时,使用frozenset代替set更安全。
·当某些API需要不可变对象时,必须用frozenset代替set。比如 dict的key必须是不可变对象,因此只能用frozenset;再比如set本身的集合元素必须是不可变的,因此set 不能包含set,set只能包含frozenset。
二.字典
定义
字典是另一种可变容器模型,且可存储任意类型对象。
键一般是唯一的,如果重复最后的一个键值对会替换面的,值不需要唯一。
判断字符是否在字典内,注意此处的字符为键值key的内容,不是value值
字典打印
打印value
添加及修改字典内value值
循环打印字典内容:
setdefault:默认值
字典元素删除
defaultdict
collections.defaultdict类,本身提供了默认值的功能,默认值可以是整形,列表,集合等.
defaultdict 是dict的子类。但它与dict 最大的区别在于,如果程序试图根据不存在的key 访问 value,会引发KeyError 异常;而 defaultdict 提供default factory 属性,该为不存在的key来自动生成生成默认的value。
需求:
我们想要一个能将键(key)映射到多个值的字(即所谓的一键多值字典)
解决方案:
1).字典是一种关联容器,每个键都映射到一个单独的值上。如果想让键映射到多个值,需要将这些多个值保存到容器(列表或者集合)中。
2).利用collections模块中的defaultdict类自动初始化第一个值,这样只需关注添加元素。