欢迎关注我的公众号

python 学习系列笔记04

2022-03-04 11:32
157
0
添加收藏

字典

创建字典

使用{}

使用

获取字典

get

a.get('five','该键不存在')

dict[]

删除 del

由于字典属于可变序列,所以我们可以任意操作字典中的键值对(key-value)。Python 中,常见的字典操作有以下几种:

向现有字典中添加新的键值对。

修改现有字典中的键值对。

从现有字典中删除指定的键值对。

判断现有字典中是否存在指定的键值对。

对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的。

keys()、values() 和 items() 方法
 

将这三个方法放在一起介绍,是因为它们都用来获取字典中的特定数据:

keys() 方法用于返回字典中的所有键(key);

values() 方法用于返回字典中所有键对应的值(value);

items() 用于返回字典中所有的键值对(key-value)。

keys()、values() 和 items() 返回值的类型分别为 dict_keys、dict_values 和 dict_items。

需要注意的是,在 Python 2.x 中,上面三个方法的返回值都是列表(list)类型。但在 Python 3.x 中,它们的返回值并不是我们常见的列表或者元组类型,因为 Python 3.x 不希望用户直接操作这几个方法的返回值。

在 Python 3.x 中如果想使用这三个方法返回的数据,一般有下面两种方案:

1) 使用 list() 函数,将它们返回的数据转换成列表

print(list(dict.keys()))

2)使用 for in 循环遍历它们的返回值

a={'数学':95,'语文':89,'英语':90}

forkina.keys():

print(k,end=' ')

print("\n---------------")

forvina.values():

print(v,end=' ')

print("\n---------------")

fork,vina.items():

print("key:",k," value:",v)

运行结果:

数学 语文 英语

---------------

95 89 90

---------------

key: 数学  value: 95

key: 语文  value: 89

key: 英语  value: 90

 

copy() 方法

copy() 方法返回一个字典的拷贝,也即返回一个具有相同键值对的新字典,注意,copy() 方法所遵循的拷贝原理,既有深拷贝,也有浅拷贝。

update() 方法
 

update() 方法可以使用一个字典所包含的键值对来更新己有的字典。

在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的键值对,则该键值对被添加进去。

pop() 和 popitem() 方法
 

pop() 和 popitem() 都用来删除字典中的键值对,不同的是,pop() 用来删除指定的键值对,而 popitem() 用来随机删除一个键值对,其实,说 popitem() 随机删除字典中的一个键值对是不准确的,虽然字典是一种无须的列表,但键值对在底层也是有存储顺序的,popitem() 总是弹出底层中的最后一个 key-value,这和列表的 pop() 方法类似,都实现了数据结构中“出栈”的操作。

setdefault() 方法
 

setdefault() 方法用来返回某个 key 对应的 value

说明,dictname 表示字典名称,key 表示键,defaultvalue 表示默认值(可以不写,不写的话是 None)。

当指定的 key 不存在时,setdefault() 会先为这个不存在的 key 设置一个默认的 defaultvalue,然后再返回 defaultvalue。

也就是说,setdefault() 方法总能返回指定 key 对应的 value:

如果该 key 存在,那么直接返回该 key 对应的 value;

如果该 key 不存在,那么先为该 key 设置默认的 defaultvalue,然后再返回该 key 对应的 defaultvalue。


 

全部评论