视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python字典的用法详解(附示例)
2020-11-27 14:20:57 责编:小采
文档


本篇文章给大家带来的内容是关于Python字典的用法详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

字典的表现形式为:{key:value},键和值之间用冒号分隔,每个键值对儿之间用逗号分隔,比如{‘name’:’超人’,’age’:500},要注意key的类型必须是不可变的类型,python对key进行哈希函数运算,根据计算结果决定value的存储地址,所以字典是无序存储的。字典的增删改查如下:

可以通过直接赋值的方式对字典进行修改,当指定的键不存在时则会在末尾增加一对儿键值

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic['age'] = 20
dic['lover'] = '小昭'
print(dic)
输出: {'name': '刘先生', 'age': 20, 'job': '工程师', 'marr': '已婚', 'lover': '小昭'}

还可以使用setdefaultv(key,value)方法来增加键值对儿
如果key存在则不错任何改动,如果key不存在,则会在末尾添加新的键值,并且如果不给定value的话默认为None
一句话概括就是“有就不管他,没有就增加”,这在循环中可以利用这一点

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic.setdefault('name','超人')
dic.setdefault('lover','小姐姐')
print(dic)
输出: {'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 'lover': '小姐姐'}

删: pop() clear del

pop 删除指定的key对应的value,并且返回删除的value,如果key不存在则会报错。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res = dic.pop('name')
print(dic,'返回值:',res)
输出: {'age': '39', 'job': '工程师', 'marr': '已婚'} 返回值: 刘先生

在使用pop()时还可以增加一个参数来指定返回值,如果给定的key不存在则会返回给定的返回值.这种方式非常好用,可以防止key不存在时报错,如果存在则删除,不存在则返回指定的字符串。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res = dic.pop('小三儿','查无此人')
print('返回值:',res)
输出: 返回值: 查无此人

clear 用于清空字典。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
dic.clear()
print(dic)
输出: {}

del 用于删除指定的键值,如果只给出字典名字时则会删除整个字典对象

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
del dic['name']
#del dic
print(dic)
输出: {'age': '39', 'job': '工程师', 'marr': '已婚'}

改: 见“增”

查:

可以直接指定键来访问字典,有则返回对应的值,没有则报错:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = dic['name']
print(a)
输出: 刘先生

可以通过字典的三个方法keys(),values(),items()分别查询所有的键、值、键值对儿。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = dic.keys()
b = dic.values()
c = dic.items()
print('keys():',a)
print('values():',b)
print('items():',c)
输出: keys(): dict_keys(['name', 'age', 'job', 'marr']) values(): dict_values(['刘先生', '39', '工程师', '已婚']) items(): dict_items([('name', '刘先生'), ('age', '39'), ('job', '工程师'), ('marr', '已婚')])

还可以用for循环遍历这三个方法来分别获得键值。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for k in dic.keys():
 print(k)
输出: name age job marr
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for v in dic.values():
 print(v)
输出: 刘先生 39 工程师 已婚
dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
for k,v in dic.items():
 print(k,v)
输出: name 刘先生 age 39 job 工程师 marr 已婚

字典的其他方法

len(dict)
计算字典元素个数。
str(dict)
把字典专户为字符串,如:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
a = str(dic)
import re
res = re.search(r'name',a)
print(res)
输出: <_sre.SRE_Match object; span=(2, 6), match='name'> 因为把dic转化为字符串并赋值给a,所以可以对a进行正则匹配 而如果直接对dic进行正则匹配则报错,因为dic不是字符串类型。

copy()
返回一个字典的浅复制

dict.fromkeys(seq,'value')
以序列seq中的元素作为字典的键,value为初始值 创建字典,如果不给参数value的话则每个键对应的值为Non,注意:这是一个“类方法”,所以使用时前面要加dict.

seq = ['a',1,'b']
a = dict.fromkeys(seq,'value')
print(a)
输出: {'a': 'value', 1: 'value', 'b': 'value'}

get(key, default=None)
返回指定键的值,如果键不存在则返回default值。

popitem()
删除并返回字典的一个键值对,如果字典为空则会报错。

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
res1 = dic.popitem()
res2 = dic.popitem()
res3 = dic.popitem()
print(res1,res2,res3,dic)
输出: ('marr', '已婚') ('job', '工程师') ('age', '39') {'name': '刘先生'}

update([other])
用键值对儿更新字典,如果键已经存在则会替换对应的值,参数为另外一个字典或者可迭代的键值对儿,比如:

dic = {'name':'刘先生','age':'39','job':'工程师','marr':'已婚'}
it = ((i,i**2) for i in range(1,4))
dic.update(it)
print(dic)
输出: {'name': '刘先生', 'age': '39', 'job': '工程师', 'marr': '已婚', 1: 1, 2: 4, 3: 9} 也可以用下面的方式指定键对应的值,比如 dic.update(name = '李小姐',age = 22)

下载本文
显示全文
专题