python字典操作

本文介绍了Python字典的数据结构特点,包括通过键访问而非下标,无序集合,可变长度,异质性,可嵌套及哈希表存储机制。创建字典的方法有多种,如空字典初始化,列表转化等。同时,文章还讨论了字典的增删改查操作,以及如何通过`.fromkeys()`方法和合并操作来构建和更新字典。
摘要由CSDN通过智能技术生成

(1)通过健(key)而非下标索引(位置偏移)访问数据

字典的数据访问不是通过下标索引,而是通过它的键来访问,这里的键叫做“key”,它所存储的值叫做“value”,所以说它的存储结构基本上就是一个键一个值,就是平时我们所说的键值对。

(2)可包含任意对象的无序集合

在默认的字典表里,它里边的元素是无序的,创建字典时的顺序和呈现时的顺序可能会不一样。

> dt = {"name":"Tom", "number":201505160021, "age":20}

(3)可变长度、异质、可以任意嵌套

(4)属于可变映射分类

在映射里,字典属于可变映射分类。

(5)对象引用表(Hash Table)

字典的存储本质是一个对象引用的表,它的存储机制是哈希表。

创建字典的方法

Python中的字典用大括号表示,注意每个项目的键和对应值之间用冒号分隔,冒号“:”左边是键,右边是对应值;每个项目之间用“,”分隔。在同一个字典中,可以包含多种不同类型的数据。

(1)创建一个空字典{}

> d = {}

> d

> dct3 = {"name":"Tom", ["num",3]:"20150516021"}

#字典的键不能是列表,因为它是可变序列

注意:字典的键只能是不可变的元素。

虽然从语法上来说,整数、小数、元组,只要是不可变的元素都是可以作为键的,但实际开发的时候键是有实际意义的,代表具体的要存储的信息。

类型转化:

列表转化为字典:要求列表中的每个元素是 长度为2的元组  或 长度为2的列表

在字典表里有一个叫dict()的函数,它能够将参数中指定的信息转换为字典表的数据结构。其语法如下:

dict(key=value)

> book = dict(title="Python入门", author="Tom", price=59.9)

注意:括号里参数的形式和一般函数参数传入的方式不同,是以关键字参数形式进行传参。

#以函数形式定义字典表时,键不加引号,但输出时是加了引号的

注意:在用dict( )函数申明字典表的方式中,以参数等于值(key=value)的形式呈现,参数在写的时候不要加上引号(即字符串),但不加引号申明的键它默认会加上一个引号

即它以字符串的类型来转换你输入的键。但是请注意这种申明方式时键不能是整数、浮点数、元组以及列表。

实际上,使用“dict( )”函数的形式来申明字典表,还有更多更灵活的方式:比如将一个列表转换为一个字典表。

注意:列表的每个元素又是一个元组或者一个列表。

dict([(key,value),(key,value)]):将由元组构成的列表转换为字典表。

> y = dict([("name", "Tom"), ("age", 20)])  #列表里的每个元素是一个元组

> y

> x = dict([["name", "Tom"], ["age", 20]])  #列表里的每个元素又是一个列表

> x

字典的方法“.fromkeys( )”

通过字典表里的一个方法“.fromkeys( )”来申明,将列表中的每个元素作为字典表里的一个键,没有值的地方总是设定为“None”,就是空对象。

> keys = ['name', 'age', 'job']    #注意此处是一个列表

> emp = dict.fromkeys(keys)   #调用字典表的方法“.fromkeys()”来申明一个字典

> emp

增加:

dt[k] = new_v

修改或者增加。修改字典元素的键k对应的值v为new_v,如果键不存在,则增加一个键值对

删除:

del dt[k]

删除键值对。删除键值对<k, v>,如果键不存在,则产生异常“KeyError”

访问方法:

dt. get(key)

或 dt[k]

字典合并:

dict(d1.items() + d2.items())

1. d1.items()获取字典的键值对的列表

2. d1.items() + d2.items()拼成一个新的列表

3. dict(d1.items()+d2.items())将合并成的列表转变成新的字典

d3 = d1.copy()

d3.update(d2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值