成长值: 15816 TA的每日心情 | 开心 2018-9-25 20:47 |
---|
新手上路
- 积分
- 457
|
本帖最后由 爱卫生 于 2017-12-15 10:29 编辑
1 字典基础
字典的特性:
- dict是无序的
- key必须是唯一的- key-value对的数据类型
(列表的读取是通过找到元素的位置及下标来读取的)
字典可以存储更复杂的信息,列表做不到。比如每个人都有很多标签,例如身高、体重、地址、年龄。。。这个是列表做不到的或者极其麻烦。
而且即便存下来了,要取出来也极其麻烦。需要死记硬背在列表中的位置(这个位置叫下标)。
dict的查询和我们查新华字典其实是一样的。新华字典就是找目录比如A开头的在第几页,然后就翻到第几页就找到了。
1.1)字典的创建、修改和读取- info = {
- 'p1':"alice", 'p2':"bob", 'p3':"clark"
- }
- print(info)
- print(info["p1"])
- info['p3']="cris"
- info['p4']="david"
- print(info)
复制代码 输出:- {'p3': 'clark', 'p2': 'bob', 'p1': 'alice'}
- alice
- {'p4': 'david', 'p3': 'cris', 'p2': 'bob', 'p1': 'alice'}
复制代码 可以看到,dict的输出是无序的。通过key值如p1来读取数据。如果该key值不存在(如p4),则会在dict中增加一个新数据(如david)。dict中的数据除了info[key]来读取,还有一种方式。因为info[key]读取的话,需要事先知道这个数据一定存在,否则会报错。
用info.get[key]就不会报错了。将print(info["p1"])改为以下代码,可以得到同样的效果,但如果p1不存在,就会输出none,不会报错(报错的话程序无法执行)。- info = {
- 'p1':"alice", 'p2':"bob", 'p3':"clark"
- }
- print(info["p1"])
- print(info.get('p1'))
- print(info.get('p5'))
复制代码 输出:而如果print(info["p5"])将得到以下输出:- print(info["p5"])
- KeyError: 'p5'
复制代码 程序没有执行,直接退出了。
1.2)字典的删除
del info可以删除整个字典。
del info["p1"]可以删除key值为p1的数据。
info.pop("p1")也是删除key值为p1的数据。
info.popintem()是随机删除一个数据。
问题:有没有一种方法可以判断数据是否在dict里?在,我就去取。不在,我就创建一个新的。答案:- info = {
- 'p1':"alice", 'p2':"bob", 'p3':"clark"
- }
- print('p1' in info)
- print('p6' in info)
复制代码 结果: |
|