查看原文
其他

python基础—字典

stormdony Python绿洲 2018-08-20

阅读文本需要3分钟,不建议跳读

节目清单

字典是python中最重要的数据类型,字典由“键-值”对组成的集合,字典中的“值”通过“键”来引用。这里将介绍字典的定义、访问、排序等功能。

字典的创建

字典的键值对之间由“逗号”隔开,并且被包含在一对花括号中,与Java中的HashMap类作用相似。字典的创建非常简单:

1dict = {key : value1, key2 : value2,...}

创建空字典,只需一对花括号就可以了

1dict = {}

字典的key,可以是字符型,也可以是数字,例如

1dict1 = {'a' : 'apple', 'b' : 'banana'}
2dict1 = {1 : 'apple', '2 : 'banana'}

字典的访问

字典的访问与元组、列表的有所不同,元组和列表是通过数字索引来获取对应的值,而字典是通过key值获取相对应的value值。例如:

1value = dict[key]

字典的添加、删除和修改非常简单,添加或修改只需要编写一条赋值语句,例如:

1dict['x'] = "value"

如果索引x不在字典dict的key列表中,字典dict将自动添加一条新的映射(x:value);如果索引存在字典dict的key列表中,字典dict将直接修改索引x对应的value值

字典的移除

字典与列表不同,字典没有remove()操作字典元素的删除可以调用del()实现del()属于内建函数,直接调用即可。列表可以调用pop()弹出列表中一个函数,字典也有pop(),该方法的声明与列表的pop()有些不同
pop()必须指点参数才能删除对应的值。如果需要清除字典的所有内容,可以掉用字典的clear()

1dict = {"a":"apple","b":"banana","g":"grape","o":"orange"}
2dict['w'] = 'watermelon'
3del(dict['a'])    #删除字典中键为'a'的元素
4dict['g'] = 'grapefruit'    #修改出字典中键为'g'的元素
5print(dict.pop('b'))    #弹出字典中键为'b'的元素
6print(dict)
7dict.clear()    #清除字典中的所用元素
8print(dict)

字典的遍历

字典除了可以采用for...in...之外,还可以采用items()实现字典的遍历操作,items()返回一个有若干元组组成的列表。例如:

1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2print(dict.items())

输出结果为:

1[('a':'apple'),('b':banana'),('g':'grape'),('o':'orange')]

可见,items()把字典中每一对key和value组成一个元组,并把这些元组存放在列表中返回。

1. for遍历

1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2for i in dict :
3    print(’dict[%s] ='
%i,dict[i])

2. items()遍历

1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2for (k,v) in dict.items() :
3    print(’dict[%s] ='
%k,v)

常用方法

方法解释
keys()返回key列表
values()返回value列表
get()获取某一键的值

例子:

1dict = {"a":"apple","b":banana","g":"grape","o":"orange"}
2#输出key的列表
3print(dict.keys())
4#输出value的列表
5print(dict.values)
6#使用get获取键为"c"的值,若不存在就返回"None"
7print(dict.get("c","None"))

输出结果:

1["a","b","g":,"o"]
2["apple","banana","grape","orange"]
3None

字典的排序、复制

在列表的排序可以使用sorted()实现,字典的排序同样可以使用该函数

1dict  = {"a":"apple","b":"banana","g":"grape","o":"orange"}
2print(sorted(dict.items()))

输出结果变为列表:

1[("a", "apple"), ("b", "banana"), ("g", "grape"), ("o", "orange")]

copy()实现了字典的浅拷贝操作,当然有浅拷贝就有深拷贝。

举个栗子来说明一下,深浅拷贝的区别:

例如,字典B浅拷贝字典A的数据,如果字典B得数据发生添加、删除或者修改操作,字典A的数据也将发生变化;相反,如果字典B深拷贝字典A的数据,字典B的数据即使发生变化,也不会影响到字典A

深浅拷贝可以使用到python中的任何对象,不只是限于字典。在python中可以使用copy()模块来实现对象的深拷贝和浅拷贝,deepcopy()用于深拷贝,copy()用于实现浅拷贝操作。

1import copy
2dict = {'a':'apple','b':'banana','g':'grape','o':'orange'}
3dict2 = copy.deepcopy(dict)    #深拷贝
4dict2 = copy.copy(dict)    #浅拷贝

总结

至此,「python基础—字典」已经分享完了,整个python中常见的数据结构类型也就完结了,希望大家都已经掌握了。希望大家看过之后,都能自己动手实践。毕竟只有自己动手才能发现自己的问题所在。

推荐阅读 |

十行代码制作词云图

python基础—列表


扫码关注

点赞是一种态度



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存