一、字典是一种映射的类型
二、创造和访问字典
①创造
a = {‘火’:’你’,’二’:9}
用{ }来表示字典
:前面的表示 key,索引值,后面的为value,值
dict()函数
(1)创造空字典
<<< a = {} #或者 <<< a = dict()
(2)创造字典
<<< a =(([‘p’,’c’],[‘b’,’d’])) #可以用任何有映射关系的形式,比如元组,列表
<<< b =dict( p = ‘c’,b = ‘d’) #这里用key = value 的形式,注意,key不用加上引号’’,python会用引号自动包裹成字符串
dict.fromkeys(seq[, value])函数
作用:
参数:
序列seq中元素做字典的键
value为字典所有键对应的初始值。
例子:
>>> a = dict() >>> a.fromkeys((1,2,3),’numbers’) {1: ‘numbers’, 2: ‘numbers’, 3: ‘numbers’} >>> a #该函数并不能改变原字典的值,只能返回一个新的字典 {}
**>>> b ={}.fromkeys((1,2,3),’numbers’)
key可以有多个,但是values只能由一个 key可以为元组或者列表**
>>> b {1: ‘numbers’, 2: ‘numbers’, 3: ‘numbers’}
②访问
访问key值对应元素:
1)通过key的值来访问字典
<<<a[‘火’] <<<’你’
注意:当key值不存在在字典当中时,用该方法访问会报错!
2)通过dict.get(key1,ifnone = None)来访问相应的值
参数:
key1 访问字典中 key值等于 key1的元素
ifnone 如果字典中没有key值等于 key1的元素,则返回ifnone
这种方法可以防止 访问到不存在的key值,而报错
3)dict.setdefault(key,default = None)
参数:
key 访问字典中 键值等于key 的元素
default 如果没有该元素,则将该键值添加进去,并默认value为default
这种方法也可以防止 访问到不存在的key值,而报错
访问所有key值:
dict.keys()函数:
作用:返回一个可迭代的所有key值序列
<<< a = {}.fromkeys((1,2,3,4),’numbers’) <<< for eachkey in a.keys(): #返回了所有key值 print(eachkey,end = ‘’) 1234
访问所有value值:
dict.values()函数:
作用:返回一个可迭代的所有value值序列
<<< a = {}.fromkeys((1,2,3,4),’numbers’) <<<for eachvalue in a.values(): #返回了所有value值 print(eachvalue,end = ‘ ‘) numbers numbers numbes
③赋值
<<< a = {‘a’:’A’,’b’:’B’} <<< a[‘a’] = ‘aa’ #通过key的值来修改字典 <<< a[‘a’] <<< aa
<<< a = {‘a’:’A’,’b’:’B’} <<< a[‘c’] = ‘C’ #如果字典中没有这个key值,那么将会创建一个新的key,并赋值 <<< a <<< {‘a’:’A’,’b’:’B’,’c’:’C’}
三、(not)in 成员资格判断符
在字典中 in 与 not in 用于判断 键值 key 是否在该字典中 ,而不是判断value
<<< a = {1:’11’,2:’22’} <<< 2 in a True <<<’22’ in a False
四、其他内置函数
1)dict.clear()
作用:清空字典
<<<a = {1:’11’,2:’22’} <<<a.clear() <<<a {}
<<<a = {1:’11’,2:’22’} <<<b = a <<<a = {} #用这种方法清空,会导致其他指向该字典的指针仍然能够访问该字典,使用clear则不会 <<<a {} <<<b {1:’11’,2:’22’}
2)dict.copy()
作用 :浅拷贝该字典,并返回一个新的字典
<<<a = {1:’one’,2:’two’} <<<b = a <<<c = a.copy() #浅拷贝也是一个新的字典,并不会被旧的字典影响 <<<a.clear() <<<a {} <<<b {} <<<c {1:’one’,2:’two’}
3)dict.pop(key)
作用:弹出对应key值的value
<<<a = {1:’one’,2:’two’} <<<a.pop(1) ‘one’ <<<a {2:’two’}
4) dict.popitem()
作用:随机返回并删除字典中的一对键和值,如果字典已经为空,却调用了此方法,就报出KeyError异常。
<<<a = {1:’one’,2:’two’} <<<a.popitem() (1,’one’) <<<a {2:’two’}
5)dict1.update(dict2)
作用:字典(Dictionary)的 update() 函数把字典dict2的键/值对更新到dict1里。
对于dict2的键/值对,
- 如果dict1中没有,则直接加入。
- 如果dict1中已有,则用dict2中的键值对替代原有的键值对。
>>> a={1:’one’,2:’two’,3:’three’} >>> b={1:None,6:’six’} >>> b.update(a) >>> b {1: ‘one’, 6: ‘six’, 2: ‘two’, 3: ‘three’}