《Python基础知识——组合数据类型之字典》

字典

一,简介

字典是储存可变数量键值对的数据结构,其形式如下所示:
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}

{1:2,2:2,3:4} #{1:2,2:2,3:4}

字典可以通过键进行索引返回对应的值,由于字典的键是唯一的且固定的,因此键是不可变对象,像字符串,元组,数值等数据类型都可以作为字典的键。

二,字典的操作

(一)创建字典

1.通过大括号{}与键值对结合。

2.通过dict函数转换创建

dict(mapping):对映射对象转化为字典
mapping:需要传入一个元素为二维对象的可迭代对象。

#传入一个元素为二维字符串的列表
dict(['12','23']) #{'1': '2', '2': '3'}

#传入一个元素为二维元组的元组
dict(((1,2),(2,3))) #{1:2,2:3}

3.通过fromkeys函数批量创建

dict.formkeys(iterable,value=None):通过键值可迭代对象批量创建值相同的键值对字典。
dict:任意字典对象。
iterable:位置参数。键的可迭代对象。
value:可选参数。字典的值,默认值为空。

#传入一个字符串可迭代对象
dict.fromkeys('1234',8) #{'1': 8, '2': 8, '3': 8, '4': 8}

#传入一个元组可迭代对象
dict().fromkeys((1,2,3,4)) #{1: None, 2: None, 3: None, 4: None}

4.通过copy函数浅复制创建

odict.copy():通过浅复制odict创建字典。
注意:浅复制指的是只对一级目录进行复制,对二级目录进行操作还是会改变原对象。

dict1={1:1,2:[5,6,7]}
dict2=dict1.copy()
dict2 #{1:1,2:[5,6,7]}
#对一级目录进行修改
dict2[1]=[1,2,3]
dict2 #{1:[1,2,3],2:[5,6,7]}
dict1 #{1:1,2:[5,6,7]}

#对二级目录进行修改
dict2[2][1]=9
dict2 #{1:[1,2,3],2:[5,9,7]}
dict1 #{1:1,2:[5,9,7]}

(二)添加\修改元素

1.通过索引添加\修改单个元素

dict[键]=<值>:如果键存在则修改原字典值。

#添加元素
a={1:2,2:3,3:4}
a[4]=5
a #{1:2,2:3,3:4,4:5}

#修改元素
a={1:2,2:3,3:4}
a[1]=5
a #{1:5,2:3,3:4}

2.通过update函数批量添加\修改元素

dict.update(object)
object:位置参数。需要传入一个元素为二维对象的可迭代对象,如果键值存在则修改原字典。

#传入一个元素为二维字符串的列表
a={1:2,2:3,3:4,4:5}
a.update(['12','23'])
a #{1:2,2:3,3:4,4:5,'1':'2','2':'3'}

#传入一个元素为二维元组的元组,修改原字典
a={1:2,2:3,3:4,4:5}
a.update(((1,5),(2,9)))
a #{1:5,2:9,3:4,4:5}

(三)删除元素

1.删除指定元素

(1)通过del语句
del dict[键]
(2)通过pop函数
dict,pop(key[,default]):键存在则返回相应值,同时删除键值对,否则返回默认值。
key:位置参数。输入字典中的键。
default:可选参数。如果字典中的键不存在时必须填入,否则报错。

a={1:2,2:3,3:4,4:5}
del a[1]
a #{2:3,3:4,4:5}
a.pop(2) #3
a #{3:4,4:5}
a.pop(5,4) #4

2.清空字典

dict.clear()

a={1:2,2:3,3:4,4:5}
a.clear()
a #{}
dict1={1:2,2:3}
dict1.pop(1) #2
dict1 #{2:3}
dict1.pop(3,4) #4

3.随机删除最后的元素

dict.popitem():从字典中随机删除最后一组键值对,并以二元组的形式返回删除的元素。
注意:字典为无序组合数据类型。

dict1={1:2,2:3}
dict1.popitem() #(2,3)
dict1 #{1:2}

(四)查询字典

1.查询所有键

dict.keys():以可迭代对象方式返回所有键信息。

{1:2,2:3}.keys() #dict_keys([1, 2])

2.查询所有值

dict.values():以可迭代对象方式返回所有值信息。

{1:2,2:3}.values() #dict_values([2, 3])

3.查询所有键值对

dict.items():以二元组可迭代对象方式返回所有键值信息。

{1:2,2:3}.items() #dict_items([(1, 2), (2, 3)])

4.查询键对应值

(1)通过索引方式
dict[key]
(2)通过get函数
dict.get(key[,default=None]):键存在则返回对应值,否则返回默认值。
key:位置参数。字典中的键。
default:可选参数。键不存在时返回的值,默认为None。

dict1={1:2,2:3}
dict1.get(1) #2
dict1.get(3,4) #4
dict1[1] #2
上一篇:OAuth2.0官方文档中文翻译


下一篇:【Python】字典比较差异总结