python字典的用法

python字典的用法

下面我们来看看字典长什么样

{1:‘a’, 2:‘b’, 3:‘c’}

1.字典的每一个元素都是由键和值组成,中间用冒号分开。而“键:值”元素之间用逗号分开。
2.字典是无顺序的,也就是说 “键:值” 元素之间没有顺序
3.字典的键必须由不可变的数据来充当,字符串、元组、实数、复数都可以,但是列表、集合、字典或者其他的可变类型都不能作为字典的键
4.字典的值可以是任意类型的数据
5.字典的键不可以重复,值可以重复
6.字典的值可以为空(None),但是键不可以为空

  1. 字典的创建
#方法一:直接赋值
>>> x = {1:'a', 2:'b', 3:'c'} 
#方法二:使用zip对象
>>> keys = [1,2,3]
>>> values = ['a', 'b', 'c']
>>> z = zip(keys, values)
>>> dic = dict(z)
>>> dic
{1: 'a', 2: 'b', 3: 'c'}
#方法三:用 “ 键名 = 值 ” 的形式创建字典 
>>> d=dict(name='Dong',age=39)
>>> d
{'name': 'Dong', 'age': 39}
#方法四:提供键值,创建值为空的字典
>>> dic = dict.fromkeys(['name','age','sex'])
>>> dic
{'name': None, 'age': None, 'sex': None}
  1. 字典元素的访问
    列表和元组是有序的,他们的元素可以通过索引访问,但是字典是无序的,只能通过键去访问对应的值。
>>> x = {'a':11, 'b':22, 'c':33}
>>> x['a']
11
>>> x['b']
22
>>> x['c']
33
>>> x['d'] #不存在的键,会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'd'

也可以使用字典对象的get函数去访问指定键对应的值

>>> x.get('a')
11
>>> x.get('b')
22
>>> x.get('c')
33
>>> x.get('dddd',"fff") #键不存在时,返回默认值(get函数的第二个参数就是默认值)
'fff'
>>> x.get('dddd')#没有默认值,什么也不返回
>>>

还可以使用字典对象的keys()、values()、items(),来分别获得字典的键、值、键值对

>>> x.keys() #获得键
dict_keys(['a', 'b', 'c'])
>>> type(x.keys()) #可以通过type()函数查看x.key()函数返回的数据类型
<class 'dict_keys'>
>>> x.values() #获得值
dict_values([11, 22, 33])
>>> type(x.values())
<class 'dict_values'>
>>> x.items() #获得键值对
dict_items([('a', 11), ('b', 22), ('c', 33)])
>>> type(x.items())
<class 'dict_items'>
  1. 元素的添加、修改
>>> x = {'zxy':99, 'swj':59, 'lilei':77, 'hanmeimei':88}
>>> x['zxy'] = 100 #修改键为‘zxy’对应的值
>>> x
{'zxy': 100, 'swj': 59, 'lilei': 77, 'hanmeimei': 88}#99被改成了100
>>> x['cuihua'] = 66 #字典中不存在‘cuihua’,则字典中会添加 'cuihua':66
>>> x
{'zxy': 100, 'swj': 59, 'lilei': 77, 'hanmeimei': 88, 'cuihua': 66}#成添加"cuihua:66"
#下面使用字典对象的update()函数更新字典
#update()的参数为一个字典
>>> x.update({'xiaofang':55, 'zxy':95})#修改‘zxy’的值,添加了 ‘xiaofang’:55
>>> x
{'zxy': 95, 'swj': 59, 'lilei': 77, 'hanmeimei': 88, 'cuihua': 66, 'xiaofang': 55}
  1. 元素的删除、字典对象的删除
    (1)del的使用
>>> x
{'zxy': 95, 'swj': 59, 'lilei': 77, 'hanmeimei': 88, 'cuihua': 66, 'xiaofang': 55}
>>> del x['xiaofang'] #删小芳
>>> x
{'zxy': 95, 'swj': 59, 'lilei': 77, 'hanmeimei': 88, 'cuihua': 66}
>>> del x #删整个字典
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined

(2)pop()和popitem()的使用

>>> x = {'zxy':99, 'swj':59, 'lilei':77, 'hanmeimei': 88}
>>> x.pop('hanmeimei') #删韩梅梅
88 #返回韩梅梅的分数
>>> x
{'zxy': 99, 'swj': 59, 'lilei': 77}#韩梅梅被删了
>>> x.popitem()#随机删一个人
('lilei', 77)#返回被删的人 (键,值)
>>> x
{'zxy': 99, 'swj': 59}#李雷被删了
>>> x.popitem()
('swj', 59)
>>> x.popitem()
('zxy', 99)
>>> x.popitem() #x此时为空字典,使用popitem()会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值