0 引入
字典(dict) 又名哈希表,是Python中最重要的数据结构,它以键对值的形式将数据储存在大括号"{}"中。而集合是一种无序且元素唯一的数据结构,可以认为集合是只有值没有键的字典。
1 字典
1.1 字典的创建
字典可以直接通过{}创建,如:
dic = {'a':1, 'b':2, 6:[3,4,5], 'd':'Blue'}这样就创建好一个名为dic的字典了,其中冒号前如'a'、'b'、6等为键,1、2、[3,4,5]等为值。
还有另外一种创建字典的方法。因为字典本质为形如(键,值)的二元组,所以当你有两个序列,且想把它们通过字典进行储存,便可以直接创建。比如,我现在有两个序列['a', 'b', 6, 'd']和[1, 2, [3, 4, 5], 'Blue']
那么可以通过zip函数将两个字典一一配对打包,再直接转换为字典,如下:
dict(zip(['a', 'b', 6, 'd'], [1, 2, [3, 4, 5], 'Blue']))此时得到的结果为:
{'a': 1, 'b': 2, 6: [3, 4, 5], 'd': 'Blue'}1.2 字典的基本操作
1.2.1 获取字典的值
若想获取字典某个键对应的值,则以dict[键名]的形式,如要获取上面字典的'd'键对应的值:
dic['d']若想检查字典中是否存在某个键,则用in,如
'a' in dic ## 返回True,说明键'a'在字典dic中
'x' in dic ## 返回False,说明'x'不在字典dic中如果想获得某个键对应的值,但是不知道键是否存在字典中,常用以下逻辑:
if 键 in 字典:
值 = 字典[键]
else:
值 = None # None可以更改以上述字典为例:
if 'c' in dic:
val = dic['c']
else:
val = None得到的结果为None,当然,如果键不在字典中,不一定要返回None,也可以返回其他你想要返回的。
Python的字典方法中存在方法get(key, default_value),可以简写上述逻辑:
key,指的是你想获取值对应的键名
default_value,指的是如果键名不存在,你想要返回啥以上述字典为例:
val = dic.get('c', None)结果同样为None
1.2.2 删除字典的值
删除字典中的值有两种方法,del和pop,其中pop会在删除值的同时将值返回。以删除上述字典中的2为例,如下:
1、del
del dic['b']# 删除后的字典为
{'a': 1, 6: [3, 4, 5], 'd': 'Blue'}2、pop
b = dic.pop('b')此时变量b接受了dic弹出的值2,并且dic也变为了{'a': 1, 6: [3, 4, 5], 'd': 'Blue'}
1.2.3 获取字典值、键、键值对
keys方法可以获取字典的所有键,keys方法提供的是迭代器,所以需要通过转换为列表,如下:
list(dic.keys())结果为['a', 'b', 6, 'd']即为字典所有的键。
同样的,values方法可以获取字典所有值,并且也为迭代器,也需要转换为列表操作:
list(dic.values())结果为[1, 2, [3, 4, 5], 'Blue']即为字典所有的值。
2 集合
集合是一种元素唯一且无序的数据结构,可以认为只有值的字典。
2.1 集合的创建
集合具有两种创建方法:
1、直接创建
{1, 2, 3, 4, 5}2、set()函数
将其他数据结构转换为集合:
set([1, 2, 3, 4, 5])结果同样为{1, 2, 3, 4, 5}。
2.2 集合操作方法
假设集合名为s,则集合具有以下操作方法:
Python集合操作










