• 通过名字来引用值得数据结构称为映射
字典(Dict)
• 字典是键值对(key-value pair)的无序可变集合。
(1)字典的操作
①字典的创建
• 字典中的每个元素包含两部分:键和值。
• 键和值用冒号分隔,元素间用逗号分隔,所有元素放在一对大括号中。
d = {key1 : value1, key2 : value2 }
• 字典中的键为任意不可变对象,比如整数、实数、复数、字符串、元组等。
• 字典中的键是唯一的。
• 空字典:{}
• 使用dict()创建字典
>>>d=dict(name=’Python’)
>>>d
{‘name’:’Python’}
②字典的删除
dict ={'Name':'Runoob','Age':7,'Class':'First'}
del dict['Name']# 删除键 'Name'
dict.clear() #清空字典
del dict # 删除字典
③字典的读取
• 以键作为下标可以读取字典元素,若键不存在则抛出异常
• 使用字典对象的get方法获取指定键对应的值,并且可以在键不存在的时候返回指定值。如不指定,默认返回None。
④字典的添加与修改
• 当以指定键为下标为字典赋值时,若键存在,则可以修改该键的值;若不存在,则表示添加一个键、值对
• 使用字典对象的update方法将另一个字典的键、值对添加到当前字典对象
⑤字典的其他操作
len(dict) | 计算字典元素个数,即键的总数。 |
str(dict) | 输出字典,以可打印的字符串表示。 |
type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
del dict[k] | 删除键为k的项 |
del dict | 删除字典dict |
k in dict | 检查dict中是否含有键为k的项 |
(2)字典的方法
方法 | 功能说明 |
添加与删除方法 | |
setdefault (key,default=None) | 如果key在字典中,返回对应的值。 如果不在字典中,则插入key及设置的默认值default,并返回 default ,default默认值为None 参数 key -- 查找的键值。 default -- 键不存在时,设置的默认键值。 |
update(dict2) | 把字典dict2的键/值对更新到dict里 无返回值 参数 dict2 -- 添加到指定字典dict里的字典。 |
pop(key[,default]) | 删除字典给定键key所对应的值,返回值为被删除的值。 如果没有给定键且未设置default值,就报出KeyError异常 参数 key -- 要删除的键值 default -- 如果没有 key,返回 default 值 |
popitem() | 随机返回并删除字典中的一对键和值。返回的形式为(key,value) 如果字典已经为空,却调用了此方法,就报出KeyError异常 site={'name':'python','number':1} pop_obj=site.popitem() >>>print(pop_obj) ('number':1) >>>print(site) {'name':'python'}
|
clear() | 清除字典中所有的项。 无返回值。 原地操作。 |
构造方法 | |
copy() | 返回与一个具有相同键值对的新字典。 浅拷贝 >>> a = {1: [1,2,3]} >>> b = a.copy() >>> a, b ({1: [1, 2, 3]}, {1: [1, 2, 3]}) >>> a[1].append(4) >>> a, b ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
|
deepcopy()
|
>>>importcopy >>> c = copy.deepcopy(a) >>> a, c ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]}) >>> a[1].append(5) >>> a, c ({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]}) |
fromkeys (seq[, value])) | 返回一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。(默认为None) 注意:创建的是新字典,调用该方法的字典是不变的 参数: seq -- 字典键值列表。 value -- 可选参数, 设置键序列(seq)的值。 >>>seq =('name','age','sex') >>>dict = dict.fromkeys(seq) >>>print (str(dict)) {'age':None,'name':None,'sex':None} >>>dict = dict.fromkeys(seq, 10) >>>print (str(dict)) {'age':10,'name':10,'sex':10} |
查询与遍历方法 | |
get (key,default=None) | 返回指定键的值,如果值不在字典中返回默认值。 参数 key -- 字典中要查找的键。 default -- 如果指定键的值不存在时,返回该默认值值。返回值返回指定键的值,如果值不在字典中返回默认值None。 |
items() | 以列表(Python2.x)/迭代器对象(Python3.x)返回可遍历的(键, 值) 元组数组 注意:返回时并没有遵循特定次序 >>>dict ={'Name':'Runoob','Age':7} >>>dict.items() dict_items([('Age',7),('Name','Runoob')])
|
keys() | 以列表(Python2.x)/迭代器对象(Python3.x)的形式返回一个字典所有的键。 |
values() | 以列表(Python2.x)/迭代器对象(Python3.x)的形式返回一个字典所有的值。 |