python dict操作,python3.7 字典 dict 有序
字典是使用最广泛的数据结构。从结构上看,它的内容是键-值对,键叫键,值叫值。类似于字典,通过前面的索引可以快速找到后面的页面,通过键可以快速定位到对应的值。Dictionary,python中给这个结构起的名字,在其他语言中还有其他名字,比如perl中的hash。
单词词典是由花括号或dict函数创建的,其用法如下
a={ 一:1,二:2,三:3}
a
{ 一:1,拖:2,三:3}
类型(a)
类“dict”的键和值用冒号分隔,多个键-值对用逗号分隔。上面字典中dict函数创建的代码如下
a=dict((一,1),(二,2),(三,3)))
a
{ 一:1,拖:2,三:3}
a=dict(zip([一,二,三],[1,2,3]))
a
{ 一:1,拖:2,三:3}
a=dict({ 一:1,二:2,三:3})
a
{one: 1, tow: 2, three: 3}如你所见,dict函数更加灵活,支持多种书写方式。字典中的键是无序和唯一的,没有数字下标索引。要访问该值,您只能通过键来访问它。用法如下
a={ 一:1,二:2,三:3}
一个
关于字典,有许多内置的方法和函数,常用的如下
1.访问字典元素#方括号和下标
a={ 一:1,二:2,三:3}
一个
一个
# get方法
得到(一个)
12.修改字典元素#可以重新赋值或新添加。
a={ 一:1,二:2,三:3}
一个=2
a
{ 一:2,二:2,三:3}
# del删除元素
del a[one]
# pop删除元素
波普(‘拖’)
#清空字典
A.clear。遍历字典。当我们遍历字典时,我们实际上是在遍历字典的键和值。我们可以通过以下函数轻松获得字典的键或值
#返回所有密钥的列表
a .密钥()
dict_keys([一,二,三])
#返回所有值的列表
a .价值观()
字典值([1,2,3])
#返回由(键,值)组成的元组序列
a .项目()
dict_items([(一,1),(二,2),(三,3)])
#返回所有密钥的列表
列表(a)
[一,二,三]
#返回由所有键组成的迭代器
国际热核聚变实验堆
0x035A9D20处的dict_keyiterator对象
对于iter(a)中的I:
.打印(一)
.
一个
拖
三在perl中,哈希键都是字符串,而在python中,字典键非常灵活,只要是不可变的对象,比如数字、字符串、元组。使用元组,可以模拟多维字典。用法如下
a={(1,2):一,(3,4):二 }
一个[(1,2)]
以上是字典的基本用法。掌握了基础,我们再来看两个实践中经常用到的高级词典。
1.在python中,一个有值列表的字典,不仅键是灵活的,而且值也是灵活的。比如我们想创建一个值为列表的字典,也是可以的。
a={one : [1,2,3,4,5], tow:[1,2,3,4,5]}
a
{ 一:[1,2,3,4,5],拖:[1,2,3,4,5]}
一个
【1,2,3,4,5】直接写,当然不难。但在实际工作中,经典的使用场景是循环赋值给字典。如果您想知道值是列表,您必须首先将值设置为空列表。用法如下
数字=[1,2,3,4,5]
a={}
#直接添加,并报告错误
对于我在num:
.一个。追加(一)
.
回溯(最近一次呼叫):
模块中文件 stdin 的第2行
关键错误:“一”
#首先将其设置为空列表,然后追加它。
#结果还可以
一个[一]=[]
对于我在num:
.一个。追加(一)
.
a
{one: [1,2,3,4,5]}如你所见,关键问题是value的默认值。因为默认值不是列表,所以您将直接使用append方法来报告错误。要解决这个问题,只需将默认值设置为列表即可。Python有一个内置的模块collections,它提供了defaultdict函数,可以很容易地设置默认值。它的用法如下
从集合导入默认字典
#此处的列表表示key的默认值为list。
a=默认字典(列表)
对于我在num:
.一个。追加(一)
.
a
默认的dict(类 list ,{one: [1,2,3,4,5]})这样更优雅。
2.嵌套字典是嵌套的,即有多级键,类似于
a[key1][key2]=值
通过将value的默认值设置为dict,可以方便地实现嵌套字典,用法如下
a=defaultdict(字典)
a[一][拖]=1
一个[一][三]=2
a
默认dict (class dict ,{one: {tow: 1, three: 2}})以上写法只支持两个键的嵌套。实际中已经可以满足需求,几乎不需要两层以上的嵌套。
目标
—如果你喜欢,分享给你的朋友—
关注我们,解锁更多精彩内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。