字典
(1)定义:字典是包含若干’'键:值 ‘‘元素的无序可变序列,字典中的每个元素包含用冒号分隔的键和值,所有的元素发放在一对大括号中
d={key1:val1,key2:val2}
(2)特点
字典中元素的键可以使python中任意不可变数据,整数,实数,复数,字符串,元组等可哈希数据,但不能使用列表,集合,字典等可变类型作为键
字典中的键不允许重复,值可以重复
字典的创建
(1)使用赋值运算符 ‘’=’’ 将一个字典赋值给一个变量即可创建一个字典变量
dict={'a':3,'b':4,'c':5}
(2)使用内置类创建字典
>>> x=dict() #空字典
>>> type(x) #查看对象类型
<class 'dict'>
>>> x={} #空字典
>>> keys=['a','b','c','d']
>>> values=[1,2,3,4]
>>> dict2=dict(zip(keys,values)) #根据已有数据创建字典
>>> dict3=dict(name='Yi',age=20) #以关键参数的形式创建字典
>>> dict4=dict.fromkeys(['name','age','sex']) #以给定内容为键,创建值为空的字典
>>>dict4
字典的删除
>>> dict={'a':3,'b':4,'c':5}
>>> del dict
>>> print(dict)
字典的访问
(1)根据键访问
>>> dict={'a':3,'b':4,'c':5}
>>> dict['a'] #键存在,返回对应的值否则抛出异常
3
(2)get()方法访问
get()方法来返回指定键对应的值,并且允许指定该键不存在时返回特定的值
>>> dict={'a':3,'b':4,'c':5}
>>> dict.get('a')
3
>>> dict.get('d','Not Exists') #指定键不存在时返回的默认值
Not Exists
使用字典对象的items()方法可以返回字典的键值对
使用字典对象的keys()方法可以返回字典的键
使用字典对象的values()方法可以返回字典的值
dict={'a':3,'b':4,'c':5}
print(dict.items())
print(dict.keys())
print(dict.values())
运行结果:
dict_items([('a', 3), ('b', 4), ('c', 5)])
dict_keys(['a', 'b', 'c'])
dict_values([3, 4, 5])
for循环遍历字典元素
dict={'a':3,'b':4,'c':5}
for i in dict.items():
print(i) #输出每一个元素
print(i[0]) #输出每一个键
print(i[1]) #输出每一个值
运行结果:
('a', 3)
('b', 4)
('c', 5)
a
b
c
3
4
5
字典元素的添加,修改
(1)以指定键为下标为字典赋值时,若键存在,则表示修改该键对应的值,若不存在,表示添加 一个新的键值对
>>> dict={'a':3,'b':4,'c':5}
>>> dict['c']=6 #修改元素
>>> dict
{'a': 3, 'b': 4, 'c': 6}
>>> dict['d']=7 #添加元素
>>> dict
{'a': 3, 'b': 4, 'c': 6, 'd': 7}
(2)使用字典对象的update()方法可以将字典的键值一次性全部添加到当前字典对象,如果两个字典中存在相同的键,则以另一个字典中的值为准对当前字典进行更新
>>> dict={'a':3,'b':4,'c':5}
>>> dict.update({'a':1,'d':6,'e':7}) #修改a的值,同时添加新元素d e
>>> dict
{'a': 1, 'b': 4, 'c': 5, 'd': 6,'e':7}
(3)使用字典对象的setdefault()方法,如果不存在则添加,如果存在则不做任何操作
>>> dict={'a':3,'b':4,'c':5}
>>> dict.setdefault('h',9)
9
>>> dict
{'a': 3, 'b': 4, 'c': 5, 'h': 9}
字典元素的删除
删除指定元素,del
>>> del dict['a']
dict
也可以使用字典对象的pop()和 popitem()方法弹出并删除指定元素
>>> dict={'a':3,'b':4,'c':5}
>>> dict.popitem() #弹出一个元素
('c', 5)
>>> dict.pop('a') 弹出指定键对应的元素
3
>>> dict
{'b': 4}
(3)clear()方法,删除字典中所有元素