字典
字典
一、字典的定义和创建
(一)字典的定义
Pyhton中的字典指的是一种可变的容器类型,而且它可以装任意类型的对象。所谓容器类型,就是可以存储数据的地方。Python中的字典是用大括号{}括起来的,并且每一个元素由键和值两部分组成,并且键和值之间必须使用英文冒号(:)隔开,由于它们之间必须一一对应出现,所以又称作键值对,每组键值对之间必须用英文逗号(,)隔开。
键是字典进行读取值和赋值的重要标记,所以要求有唯一性,并且是不可变序列,因此列表不可充当字典的键。
值可以是其他任意数据类型,不要求具有唯一性。
字典并不是序列,所以没有顺序,因而也就没有索引。
(二)字典的创建
字典直接使用 {} 来建立,格式符合字典的要求即可。
d1 = {1:'a', 2:'b', 3:'c'}
d2 = {'ls1':[1,2,3], 'ls2':[4,5,6]}
d3 = {'dict1':d1, 'dict2':d2}
print(d1)
print(d2)
print(d3)
字典的键具有唯一性,如果创建时同一键被赋值两次,则后一个值会取代前一个值成为键的值。
d = {'牛奶':18, '香蕉':6, '饼干':10, '牛奶':20}
print(d)
二、字典的增、删、改、查
(一)字典的访问
由于字典没有索引,所以我们不能用索引的方法来访问字典。要访问字典里的值,有两种常用的方法。
-
使用
字典名[键名]的方式,此方法类似序列中的索引访问d = {'A':'a', 'B':'b', 'C':'c'} print(d['A']) -
使用get()函数,格式为
字典名.get(键名)d = {'A':'a', 'B':'b', 'C':'c'} print(d.get('A'))
上述两种方法最大的区别是get()函数可以自定义没有该键时的返回值,如果没有自定义,则返回None;而把键当作 “索引” 来访问字典时,如果没有该键,则会报错。
d = {'A':'a', 'B':'b', 'C':'c'}
print(d.get('D', '找不到此元素'))
print(d['D'])
(二)修改已有的键的值
直接使用 字典名加键 的方式进行赋值即可
d = {'A':'a', 'B':'b', 'C':'c'}
d['C'] = 3
print(d)
(三)给字典增添新的键值对
同样也可以采用 字典加键 的方式直接赋值即可,也就是说:采用该方法赋值,如果字典中已有键,则将该键的值修改为最新的值;如果字典中没有该键,则新增该键值对到字典中。
d = {'A':'a', 'B':'b', 'C':'c'}
d['D'] = 'd'
print(d)
(四)删除字典里已有的值
使用del可以删除一个键值对,如果不给到具体的键,则删除整个变量
d = {'A':'a', 'B':'b', 'C':'c'}
del d['C']
print(d)
del d
print(d)
(五)清空字典里的值
clear()可以清空字典里的所有值,使字典成为一个空字典
d = {'A':'a', 'B':'b', 'C':'c'}
d.clear()
print(d)
三、字典的其他操作
(一)len()和in
-
len():返回字典里的元素(键值对)的数量
d = {'A':'a', 'B':'b', 'C':'c'} print(len(d)) -
in:检查键是否在字典中(注意,in只检查键,不检查值)
d = {'A':'a', 'B':'b', 'C':'c'} print('A' in d) print('a' in d)
(二)copy()
使用copy()方法可返回一个具有相同键值对的新字典。字典和列表一样,如果只是赋值的话则只是应用之前的内容,但如果做了修改就会改变原先的字典内容。copy方法类似于列表的 "[:]"(截取),相当于完整地复制了一份新的脚本。
d1 = {'A':'a', 'B':'b', 'C':'c'}
d2 = d1
d3 = d1.copy()
print('——————修改前————————')
print(d1)
print(d2)
print(d3)
d1['D'] = 'd'
print('——————修改后————————')
print(d1)
print(d2)
print(d3)
(三)fromkeys()
fromkeys()用于创建一个新字典,用序列中的元素作为字典的键,第二个参数为字典所有参数对应的初始值。
d = {}
seq = ["name", "age", "class"]
student1 = d.fromkeys(seq) # 不指定默认值
print(student1)
student2 = d.fromkeys(seq, 15) # 指定默认值为15
print(student2)
(四)keys()、values()、items()
-
keys():使用keys方法返回一个列表,里面包含了字典的所有键
d = {'A':'a', 'B':'b', 'C':'c'} print(d.keys()) -
values():使用values方法返回一个列表,里面包含了字典的所有值
d = {'A':'a', 'B':'b', 'C':'c'} print(d.values()) -
items():使用items方法返回一个列表,里面包含了所有键的列表和所有值的列表(准确地说items返回的并不是一个列表类型,只是类似列表,这里不展开说明)
d = {'A':'a', 'B':'b', 'C':'c'} print(d.items())由于字典不能直接用于for循环中,所以我们可以使用items()方法来遍历字典:
d = {'A':'a', 'B':'b', 'C':'c'} for k,v in d.items(): print(k, "=>", v)

浙公网安备 33010602011771号