第二章python序列-字典

本文介绍了Python字典的创建、访问元素、添加与修改元素以及删除元素的方法,包括直接赋值、dict()函数、get()方法、keys(),values(),items()以及del命令、pop()和clear()等操作。
摘要由CSDN通过智能技术生成

字典

字典用于存放具有映射关系的数据结构
字典是包含若干“键:值”对的无序可变序列,字典中的每个元素包含两部分:“键”和“值”。定义字典时,每个元素的“键”和“值”用冒号分隔,相邻元素之间用逗号分隔,所有的元素都放在一对大括号“{”和“}”中
键(key)必须使用不可变类型的
同一个字典中,键必须是唯一的

1.创建字典

(1)直接将一个字典对象赋给变量

>>> a={'name':'xiaohua'}
>>> type(a)  #类型是字典
<class 'dict'>
>>> b={'a':1,'b':2}
>>> b
{'a': 1, 'b': 2}

(2)使用dict()利用已有数据创建字典

>>> x=['a','b','c']
>>> y=[1,2,3]
>>> c=dict(zip(x,y))
>>> c
{'a': 1, 'b': 2, 'c': 3}

(3)使用dict根据给定的键、值创建字典

>>> d=dict(age=18)
>>> d
{'age': 18}
>>> e=dict.fromkeys(['name','age','sex'])
>>> e
{'name': None, 'age': None, 'sex': None}

2.访问一个元素的值

(1)以键作为下标

>>> a={'name':'xiaohua'}
>>> a
{'name': 'xiaohua'}
>>> a['name']
'xiaohua'
若指定键不存在则会抛出异常
>>> a={'name':'Wang','sex':'male','age':37}
>>> a['name']
'Wang'
>>> a['tel']  #若指定键不存在则会抛出异常
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    a['tel']  #若指定键不存在则会抛出异常
KeyError: 'tel'

(2)使用字典对象的get()方法

>>> a['name']
'xiaohua'
>>> a.get('name')
'xiaohua'
>>> a.get('age')
>>> 
get()方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的事后反悔指定值,如果不指定,则默认返回None
>>> a
{'name': 'Wang', 'sex': 'male', 'age': 37}
>>> print(a.get('address'))
None
>>> print(a.get('address','SDIBT'))
SDIBT
>>> 

3.访问所有元素的键、值

(1)keys()

访问所有元素的键

>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.keys()  #访问所有元素的键
dict_keys(['a', 'b', 'c'])

(2)values()

访问所有元素的值

>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.values()  #访问所有元素的值
dict_values([1, 2, 3])
>>> 

(3)items()

遍历所有元素的值

>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.items()  #遍历所有元素的值
dict_items([('a', 1), ('b', 2), ('c', 3)])
>>> t={'语文':80,'数学':90,'英语':85}
>>> t.items()
dict_items([('语文', 80), ('数学', 90), ('英语', 85)])
>>> for key in t:
    print(key)

    
语文
数学
英语
>>> for key,value in t.items():
    print(key,value)

    
语文 80
数学 90
英语 85

求成绩的平均值

4.添加与修改字典元素

(1)字典对象[键]=值

>>> t
{'语文': 80, '数学': 90, '英语': 85}
>>> t['语文']=90
>>> t
{'语文': 90, '数学': 90, '英语': 85}
>>> t['体育']=99
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99}

(2)字典对象的setdefault()方法

如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。

>>> t.setdefault('语文')
90
>>> t.setdefault('python')
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None}
>>> t.setdefault('python1',99)
99
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}

(3)字典对象的update()方法

update() 函数把字典 dict2 的键/值对更新到 dict 里

>>> q={'a':1,'b':2}
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> t.update(q)
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}
>>> q.update(t)
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}

4.删除字典

(1) del命令

删除所有的元素

>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> del q['python']
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python1': 99}

删除指定键的对应元素

>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}
>>> del t
>>> t
Traceback (most recent call last):
  File "<pyshell#53>", line 1, in <module>
    t
NameError: name 't' is not defined

(2)pop()方法

删除并返回指定“键”的元素

>>> a
{'name': 'Wang', 'sex': 'male', 'age': 37}
>>> a.pop('name')
'Wang'
>>> a
{'sex': 'male', 'age': 37}

(3)clear()方法

删除所有的元素

>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python1': 99}
>>> q.clear()
>>> q
{}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值