k_0711

2020-08-11   阅读量: 242

python

基本容器--字典















字典

字典(dictionary),与列表类似,但其中元素的顺序无关,因此我们不会通过元素位置(偏移量)来访问字典。取而代之的是,每个元素拥有与之对应的互不相同的键(key),需要通过键来访问元素。

  • 键通常是字符串,但它还可以是 Python 中其他任意的不可变类型:布尔型、整型、浮点型、元组、字符串,以及其他一些在后面的内容中会见到的类型。字典是可变的,因此我们可以增加、删除或修改其中的键值对。

字典的创建

其实我们已经用了中括号"[]",小括号"()"去建立某个容器。所以大家也能想到,字典,我们通常会用大括号"{}"将一系列以逗号隔开的键值对(key:value)包裹起来即可进行字典的创建。

定义解读:“包含双值子序列的序列”
上面的例子中,首先兵力情况,是个序列(list),他包含着子序列(也是list),每个子序列,只有两个值(双值)。

利用[key]进行添加、修改字典元素

向字典中添加元素非常简单,只需指定该元素的键并赋予相应的值即可。如果该元素的键已经存在于字典中,那么该键对应的旧值会被新值取代。如果该元素的键并未在字典中出现,则会被加入字典。
语法结构为dict[元素名] = 值


    1. 我们想对某个key的value进行修改的时候,只需要通过“[ ]”找到这个key,然后重新进行定义,value的值就会覆盖原来的值。

    2. 当我们输入的key在字典里并不存在,这时候,字典中会自动添加该"key-value"记录。

  • 注意:记住,字典的键必须保证互不相同。如果创建字典时同一个键出现了两次,那么,在输出的时候,该key的值会以后者为主。

利用函数对字典进行操作

update( )函数

update( )函数可以将一个字典中的键-值对复制到另外一个字典中去,当然,如果两个字典中的key出现了重复情况,则最终字典中该key的value会以后者为主,也就是说,会被覆盖掉,同时被覆盖字典中若未包含某key,会直接进行添加。(有则改之,无则加勉)
具体的语法结构为:dict_1.update(dict_2)

del命令

与列表中介绍的del命令一样,del作用于字典也有着去掉某元素的作用,不同的是,在字典中,一旦指定了key,整条记录(key-value)均会被删除。

注意:del命令每次只能对一个元素(一对key-value)进行删除。

clear( )函数

clear()函数,顾名思义,就是将字典中的所有键-值对清除。

in命令

与之前接触的in的功能一样,这里的in也是帮我们去查找字典中,是否存在某一个

[key]获取元素

这是对字典最常进行的操作,只需指定字典名和键即可获得对应的值,若字典中不存在某key则会报错。

若你不想返回报错,或如果没有查询到该key,你想返回一些诸如“查无此项”的返回结果,该怎么办呢?

这里提供一个有趣的函数,叫做get()函数,功能为:

  1. get()中输入需要查询的key,若key存在,则返回对应的value

  2. 若key不存在,则返回第二个参数,即提前设定好的返回结果
    语法结构为:dict.get([key],alter_output)

keys( )函数

keys( )函数(注意,不是key( ))可以帮助我们直接找到字典中所有的key。

keys() 会返回 dict_keys(),它是键的迭代形式。这种返回形式对于大型的字典非常有用,因为它不需要时间和空间来创建返回的列表。有时你需要的可能就是一个完整的列表,这里只能调用 list()dict_keys 转换为列表类型。

values( )函数

keys( )函数一样,values( )函数可以帮我们直接找到字典中所有key对应的“值”。输出的结果同keys( )形式一致。

Items( )函数

这个函数其实就是dict( )函数的逆函数,我们可以通过这个函数重新将字典中的键-值,转化成元组序列组成的列表。

copy( )函数

上面我们提到过,字典属于可变的容器类型,是一个开着口的纸箱。同list一样,我们在操作的时候,为了不对原始dict进行操作,需要用copy( )函数进行复制。


35.0038 2 2 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子