0
点赞
收藏
分享

微信扫一扫

【Python数据分析基础-7】数据结构之字典与集合


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




举报

相关推荐

0 条评论