Python字典的定义
字典使用一对大括号进行定义,键值对之间使用逗号隔开,键和值使用冒号分隔。键必须是不可变类型,一般使用字符串,数字,和元组也可以但用的不多。值可以是任意数据类型。
Python字典的常用操作
字典的基本操作分为:增、删、改、查。
”查“主要是去获取列表的某一个元素或者是多个元素,通过索引和切片可以获取。
”增“主要是对这个字典当中去添加一个新的元素。
“删”主要指我们对字典当中的某元素进行删除。
“改”主要是这个对这个字典当中的元素去进行修改。
Python字典的查询
字典通过键作为索引来获取对应的值。
Python字典是否存在key
如果想判断某个key是不是已经存在,可以直接使用in来判断:
print("name"inb)
Python字典的键可以是列表吗?
关于Python字典的键,始终需要注意的是:
键不能重复
键必须可哈希,更直白一点,键必须是不可变数据类型
列表是可变的数据类型,所以不能作为字典的键。同样的,字典,集合这一类的可变数据类型都不能作为字典的键。
Python字典的键可以是元组吗?
元组是不可变的,可以作为字典的键。
同样的,字符串、整型、浮点数、布尔值都是不可变的,所以都可以作为字典的键。
Python字典的值允许重复吗
既然字典的键不能重复,那值可以重复吗?
答案是可以的,字典的值几乎不会做任何限制,你可以存储任何的数据类型,任何的数据值。
不同的键对应相同的值,完全是合理的:
Python字典取值的几种方法
取值最经典对的方法是通过中括号取值。
但这种方式有个弊端,当取的key不存在时,会报错。比如我取一个hobby,因为不存在,会触发keyerror错误。
为了避免这种情况,我比较习惯用get方法,当key不存在的时候,可以指定一个默认值None,不会引发错误。
Python字典添加元素
字典添加元素和修改元素的语法是一样的。
如果键不存在,则添加元素。
如果键存在则修改字典
Python字典删除元素
pop(key[,d])
删除指定的键对应的值,并返回该值,如果键不存在则返回默认值d,如果没有给定d,则抛出异常
popitem()
任意删除字典中的一个键值对,并以二元元组(key,value)的形式返回
Python字典合并
还可以通过方法.update(new_dict),将new_dict合并
当有重复key的时候会覆盖
Python字典遍历
遍历字典使用for循环语法,但是要注意要获取字典的items()方法,通过items()可以同时得到键值对,element是一个元组。
如果一不小心把items()落掉了,则只能得到key:
如果只想获取值,则加上values(),快来验证下吧。
Python字典排序
Python的key,value一般按照先添加,先展示的顺序展示。如果想对字典排序,就要改变键值对的展示顺序。下面是一种比较优雅的实现,但用了一些还没讲的内容。
可以为key参数值指定lambda表达式,代码如下:
这段代码使用了for-in表达式生成了字典,其中x是待排序的字典。items获取了key-value对。而lambda表达式的item就是当前的key-value对。item[0]表示key,item[1]表示value,所以使用item[1],就表示按value排序,而使用item[0],就是按key排序。
总结
字典的操作是非常丰富的,除了上面讲的内容,还有一些进阶操作比如setdefaultdict、默认字典,排序字典,都还没涉及到,后面出专门的文章进行说明。