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集合操作