您的位置:首页 > 编程语言 > Python开发

学习笔记(16):600 分钟搞定 Python 入门到实战-字典-2

2020-06-06 05:52 211 查看

立即学习:https://edu.csdn.net/course/play/26676/338781?utm_source=blogtoedu

字典的方法

字典的列表和用途

读取字典值的方法

[code]>>> d = dict([('a', 1), ('lang, 'python')])

该字典是由一个列表组成的,列表里面是两个元组,元组里面是两个元素。我们通过元组的形式来表示键值对的对应关系。

[code]>>> d = dict([('a', 1), ('lang', 'python')])
>>> d
{'a': 1, 'lang': 'python'}
[code]>>> d['b']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'b'

因为‘b’不在字典里面,就会报错,这时候程序就会终止运行,但若我们还想继续运行下去,字典给我们提供了如下两种方法。

方法一 get

[code]>>> d.get('b')
>>> d.get('b', 'laoqi')
'laoqi'

意思就是说如果b不在这个字典里面,则b键返回指定的laoqi

d.get

[code]>>> help(d.get)
Help on built-in function get:

get(key, default=None, /) method of builtins.dict instance
Return the value for key if key is in the dictionary, else default.

方法二 setdefault

d.setdefault

[code]>>> help(d.setdefault)
Help on built-in function setdefault:

setdefault(key, default=None, /) method of builtins.dict instance
Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.
[code]>>> d.setdefault('b')
>>> d
{'a': 1, 'lang': 'python', 'b': None}

这样None作为b的值就被插入到字典d里面了,并把default对应的值(None)返回了。

[code]>>> d.setdefault('name', 'laoqi')
'laoqi'
>>> d
{'a': 1, 'lang': 'python', 'b': None, 'name': 'laoqi'}

会把以name为键laoqi为值的键值插入到字典里面,并且返回值

以上两种方法,就是读键(不存在字典)的方法

 

如何增加键值对到字典

[code]>>> d.update([('price', 3.14),('color','white')])
>>> d
{'a': 1, 'lang': 'python', 'b': None, 'name': 'laoqi', 'price': 3.14, 'color': 'white'}

这个update是个列表,里面的参数是元组,元组里面的元素是两个:如price和3.14。即创建的是price和3.14的对应关系。

update还可以使用字典作为其参数

[code]>>> d1 = {'city': 'soochow'}
>>> d1
{'city': 'soochow'}

字典里面只有一个元素,逗号可写可不写。

[code]>>> d.update(d1)
>>> d
{'a': 1, 'lang': 'python', 'b': None, 'name': 'laoqi', 'price': 3.14, 'color': 'white', 'city': 'soochow'}

如何删除字典里面的参数

[code]>>> del d['a']
>>> d
{'lang': 'python', 'b': None, 'name': 'laoqi', 'price': 3.14, 'color': 'white', 'city': 'soochow'}
[code]>>> d.pop('lang')
'python'
>>> d
{'b': None, 'name': 'laoqi', 'price': 3.14, 'color': 'white', 'city': 'soochow'}

删除了lang对应的值,且还返回了lang对应的值

如果删除一个值,而这个值又不在字典里面,则返回另外一个值,这样就不会报错了。

 

从字典键值对的最后面删除一个键值对,并且把该键值对的key和value返回

[code]>>> d.popitem()
('city', 'soochow')

 

 

比较字典和列表

- 字典不是序列,也就是说字典没有像列表那样的索引

- 两者都是容器类对象,即元素变化不会引起对象变化,因为对象的内存地址id还是一样不变

- 两者都是可变对象

- Python3.6开始,字典也有顺序

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: