(六)Python:字典

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为Map,使用键-值(key-value)存储,具有极快的查找速度。字典是可变的。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

dict = {'key1':value1,'key2':value2,'key3':value3}

其中key是唯一的,值不必。键可以使用字符串、数字和元组,但是不能使用列表。

一、访问字典里的值

使用[键名]来获取相应的值:

dict = {'name':'Jack','age':23,'id':'12345678910'}

print("dict['name']=",dict['name'])

这里写图片描述
如果使用字典中不存在的键值去访问字典会出错:

dict = {'name':'Jack','age':23,'id':'12345678910'}

print("dict['addr']=",dict['addr'])

这里写图片描述

二、修改字典

如果要修改的键存在于字典中那么我们做的就是修改操作,如果键值不存在与字典中那么我们做的就是添加操作:

dict = {'name':'Jack','age':23,'id':'12345678910'}
print("dict:",dict)
#键age存在于字典中,修改操作
dict['age'] = 25
print("dict:",dict)
#键addr不存在于字典中,添加操作
dict['addr'] = 'Xi An'
print("dict:",dict)

这里写图片描述

三、删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

dict = {'name':'Jack','age':23,'id':'12345678910'}

del dict['name'] # 删除键 'name'
print("dict:",dict)

dict.clear()     # 清空字典
print("dict:",dict)

del dict         # 删除字典
print("dict:",dict)

这里写图片描述

四、字典内置函数&方法

方法 描述 实例
len(dict) 计算字典元素个数,即键的总数。 dict = {‘name’:”Jack,’age’:18}
len(dict)
输出结果:2
str(dict) 输出字典,以可打印的字符串表示。 dict = {‘name’:”Jack,’age’:18}
str(dict)
输出结果:”{‘name’:”Jack,’age’:18}”
dict.clear() 用于删除字典内所有元素。 dict = {‘name’:”Jack,’age’:18}
dict.clear()
输出结果:{}
dict.copy() 字典的浅复制。父对象深拷贝,子对象还是浅拷贝 dict1 = {‘name’:’Jack’,’num’:[1,2,3]}
dict2 = dict1.copy()
dict1[‘num’].remove(1)
str(dict2)
输出结果:”{‘name’: ‘Jake’, ‘num’: [2, 3]}”#子对象还是浅拷贝
dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
参数:
         seq – 字典键值列表。
         value – 可选参数, 设置键序列(seq)的值。
seq = (‘name’, ‘age’, ‘sex’)
dict = dict.fromkeys(seq)
print (“新的字典为 : %s” % str(dict))
dict = dict.fromkeys(seq, 10)
print (“新的字典为 : %s” % str(dict))
输出结果:
新的字典为 : {‘age’: None, ‘name’: None, ‘sex’: None}
新的字典为 : {‘age’: 10, ‘name’: 10, ‘sex’: 10}
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值
参数:
         key – 字典中要查找的键。
         default – 如果指定键的值不存在时,返回该默认值值。
dict = {‘Name’: ‘Jake’, ‘Age’: 22}
print (“Age 值为 : %s” % dict.get(‘Age’))
print (“Sex 值为 : %s” % dict.get(‘Sex’, “NA”))
输出结果:
Age 值为 : 22
Sex 值为 : NA
dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
key in dict 如果键在字典dict里返回true,否则返回false dict = {‘Name’: ‘Jake’, ‘Age’: 22}
’sex’ in dict
输出结果:False
dict.keys() 以列表返回一个字典所有的键
dict.items() 以列表返回可遍历的(键, 值) 元组数组。 dict = {‘Name’: ‘Jake’, ‘Age’: 7}
print (“Value : %s” % dict.items())
输出结果:Value : dict_items([(‘Age’, 7), (‘Name’, ‘Jake’)])
dict.values() 以列表返回字典中的所有值。
dict.update(dict2) 把字典dict2的键/值对更新到dict里。 dict = {‘Name’: ‘Jake’, ‘Age’: 22}
dict2 = {‘Sex’: ‘female’ }
dict.update(dict2)
print (“更新字典 dict : “, dict)
输出结果:更新字典 dict : {‘Name’: ‘Jake’, ‘Age’: 22, ‘Sex’: ‘female’}
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 dict = {‘name’:’Jake’,’age’:18}
v = dict.pop(‘name’,’None’)
v2 = dict.pop(‘sex’,’None’)
输出结果:
’Jake’
’None’
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。如果字典已经为空,却调用了此方法,就报出KeyError异常。

猜你喜欢

转载自blog.csdn.net/qq_25343557/article/details/79835554