栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python之字典

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python之字典

Python 字典

author:once Day date:2022年2月17日

本文档在于总结相关内容,零散的知识难以记忆学习。

本文档基于windows平台。

全系列文档查看:python基础_CSDN博客。

文章目录

Python 字典

1.介绍2.创建字典3.访问字典4.字典操作

4.1 修改字典元素4.2 删除字典元素 del4.3 dict()将其他对象转化成字典 5.字典方法和函数

5.1 len() 计算数量5.2 str() 输出字符串5.3 clear() 删除字典内所有元素5.4 copy() 浅复制字典5.5 fromkeys(iterable,value=None) 以序列值和字典值创建新的字典5.6 get(self, key, default=None)返回指定键的值5.7 in 成员资格判断5.8 items() 以列表返回可遍历的(键, 值) 元组数组5.9 keys() 以列表返回一个字典所有的键5.10 setdefault(key,default=None) 查询键是否在字典中5.11 update(dict2) 把字典dict2的键/值对更新到dict里5.12 values() 以列表返回字典中的所有值5.13 pop(key) 删除并返回指定key的值5.14 popitem() 删除并返回字典的最后一个键值对 注:本文章收集于互联网,仅供学习之用!

1.介绍

在Python3中字典(dictionary ,简写为dict)是另一种可变容器模型,且可存储任意类型对象。

Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。

字典包含的元素个数不限,值的类型可以是任何数据类型!

字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,常见是将字符串作为key。

同一个字典内的key必须是唯一的,但值则不必唯一。

注意:从Python3.6开始,字典是有序的!它将保持元素插入时的先后顺序!请务必清楚!

字典并没有序列性质!,它在空间上是不连续的。

2.创建字典

直接创建即可:

>>> {'name':'onceday','age':20}
{'name': 'onceday', 'age': 20}
>>> {'name':['once','day']}
{'name': ['once', 'day']}
>>> {100:'good',80:'better',60:'bad'}
{100: 'good', 80: 'better', 60: 'bad'}
3.访问字典

使用key访问:

>>> user={'name':'onceday','age':20}
>>> user['name']
'onceday'
>>> exam={100:'good',80:'better',60:'bad'}
>>> exam[80]
'better'
>>>>>> exam[45]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 45

如果访问字典里没有的键,会抛出异常。

4.字典操作 4.1 修改字典元素

修改就是给原有的键赋予新的值。由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

>>> user={'name':'onceday','age':20}
>>> user['age']=18
>>> user
{'name': 'onceday', 'age': 18}
>>> user['school']='Whu'
>>> user
{'name': 'onceday', 'age': 18, 'school': 'Whu'}
4.2 删除字典元素 del

使用del关键字删除字典元素或者字典本:

>>> user={'name':'onceday','age':20}
>>> del user['name']
>>> user
{'age': 20}
4.3 dict()将其他对象转化成字典

可接受三种参数:

dict() 创建空字典

>>> dict()
{}

dict(mapping) 从映射中生成字典,最直接就是用字典做参数,可以用来复制字典

>>> a={1:11,2:22}
>>> c=dict(a)
>>> c
{1: 11, 2: 22}
>>> a is c
False
>>> id(a)
2481600628224
>>> id(c)
2481600628672
#可以看到两个有不同的地址了。

dict(iterable) 放入合适的序列元素,其中每个元素包含两个次级元素,这样第一个元素用作key,第二个元素用作value

>>> a=['sS','fF','hH']
>>> for x,X in a:print(x,X)
...
s S
f F
h H
#上面就是满足条件的元素
>>> dict(['sS','fF','hH'])
{'s': 'S', 'f': 'F', 'h': 'H'}

>>> a=(['name','onceday'],['age',18],[145,'id'])
>>> a
(['name', 'onceday'], ['age', 18], [145, 'id'])
>>> for x,X in a:print(x,X)
...
name onceday
age 18
145 id
#这也是满足条件的元素
>>> dict((['name','onceday'],['age',18],[145,'id']))
{'name': 'onceday', 'age': 18, 145: 'id'}
5.字典方法和函数 5.1 len() 计算数量

计算键值对的数量

>>> dict((['name','onceday'],['age',18],[145,'id']))
{'name': 'onceday', 'age': 18, 145: 'id'}
>>> len(_)#_表示上一个结果的变量
3
5.2 str() 输出字符串
>>> a={'name':'hj','age':14,'money':1456}
>>> str(a)
"{'name': 'hj', 'age': 14, 'money': 1456}"
5.3 clear() 删除字典内所有元素
>>> a
{'name': 'hj', 'age': 14, 'money': 1456}
>>> a.clear()
>>> a
{}
5.4 copy() 浅复制字典
>>> a={'name':'hj','age':14,'money':1456}
>>> b=a.copy()
>>> b
{'name': 'hj', 'age': 14, 'money': 1456}
>>> c=a #直接赋值,两个变量都指向同一个对象
>>> c
{'name': 'hj', 'age': 14, 'money': 1456}
>>> d=dict(a) #映射生成新的字典
>>> d
{'name': 'hj', 'age': 14, 'money': 1456}
>>> a.clear()
>>> a
{}
>>> b
{'name': 'hj', 'age': 14, 'money': 1456}
>>> c
{}
>>> d
{'name': 'hj', 'age': 14, 'money': 1456}
#b和d在说明复制了字典的映射关系
>>> id(a['name'])
2481600709568
>>> id(b['name'])
2481600709568
#相同,说明底层的数据并没有复制两份
5.5 fromkeys(iterable,value=None) 以序列值和字典值创建新的字典

创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

>>> a=[1,2,3,4]
>>> dict.fromkeys(a)
{1: None, 2: None, 3: None, 4: None}
>>> dict.fromkeys(a,'value')
{1: 'value', 2: 'value', 3: 'value', 4: 'value'}
5.6 get(self, key, default=None)返回指定键的值

如果值不在字典中返回default值

>>> a={1:['once','day'],2:'hello word',3:1456}
>>> a.get(1)
['once', 'day']
>>> a.get(4)
#没有返回值
>>> a.get(4,'no')
'no'
5.7 in 成员资格判断
>>> a={1:['once','day'],2:'hello word',3:1456}
>>> 1 in a
True
>>> 4 in a
False
>>> 4 not in a
True
5.8 items() 以列表返回可遍历的(键, 值) 元组数组
>>> a={1:['once','day'],2:'hello word',3:1456}
>>> a.items()
dict_items([(1, ['once', 'day']), (2, 'hello word'), (3, 1456)])
5.9 keys() 以列表返回一个字典所有的键
>>> a={1:['once','day'],2:'hello word',3:1456}
>>> a.keys()
dict_keys([1, 2, 3])
5.10 setdefault(key,default=None) 查询键是否在字典中

和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

>>> a={1:['once','day'],2:'hello word',3:1456}
>>> a.setdefault(1)
['once', 'day']
>>> a.setdefault(4)
>>> a
{1: ['once', 'day'], 2: 'hello word', 3: 1456, 4: None}
>>> a.setdefault(5,'value')
'value'
>>> a
{1: ['once', 'day'], 2: 'hello word', 3: 1456, 4: None, 5: 'value'}
5.11 update(dict2) 把字典dict2的键/值对更新到dict里
>>> a={'name':'onceday','age':18}
>>> b={'money':1000}
>>> a.update(b)
>>> a
{'name': 'onceday', 'age': 18, 'money': 1000}
5.12 values() 以列表返回字典中的所有值
>>> a={'name': 'onceday', 'age': 18, 'money': 1000}
>>> a.values()
dict_values(['onceday', 18, 1000])
5.13 pop(key) 删除并返回指定key的值
>>> a={'name': 'onceday', 'age': 18, 'money': 1000}
>>> a.pop('money')
1000
>>> a
{'name': 'onceday', 'age': 18}
5.14 popitem() 删除并返回字典的最后一个键值对
>>> a={'name': 'onceday', 'age': 18, 'money': 1000}
>>> a.popitem()
('money', 1000)
>>> a
{'name': 'onceday', 'age': 18}
>>>
注:本文章收集于互联网,仅供学习之用!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号