04 字典表 dict
目录
一、字典表的声明
1.字典表的本质是一个hash table,是一个映射类型,并且是无顺序的;
2.字典的键值是不可以改变的类型:字符串、元组;
1.使用{}
来定义字典表
>>> book ={'title':'python入门经典','ISBN':'AABBCC111','price':50}
>>> book
{'title': 'python入门经典', 'ISBN': 'AABBCC111', 'price': 50}
2.使用下标来访问字典表的值
通过方括号,通过key来访问value
book['title']
'python入门经典'
book[0]
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 0
3.增加一个键值对
可以通过方括号和值的方式,增加一个键值对,此时是没有顺序的
>>> book['author'] = 'kevin'
>>> book
{'title': 'python入门经典', 'author': 'kevin', 'ISBN': 'AABBCC111', 'price': 50}
4.dict的get()方法
如果不使用get()方法,可以通过字典表的小标方式来获取value,但是如果value不存在的话,就会抛出一个异常。
有的时候,不需要抛出异常,可以用get()方法
>>> book
{'title': 'python入门经典', 'author': 'kevin', 'ISBN': 'AABBCC111', 'price': 50}
>>> book['publicDate']
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 'publicDate'
>>> book.get('publicDate','20180101')
'20180101'
5.使用dict()构造函数来创建一个dict
需要注意的是使用dict(),其中key是没有引号的,dict会将其默认为字符串处理
>>> food = dict(water='景田百岁山', vegetable='秋葵', meat='pork')
>>> food
{'vegetable': '秋葵', 'meat': 'pork', 'water': '景田百岁山'}
二、字典表的操作
1.获取字典表的长度,使用全局函数len()
>>> book
{'title': 'python入门经典', 'author': 'kevin', 'ISBN': 'AABBCC111', 'price': 50}
>>> len(book)
4
2.改变字典表的value
2.1可以直接通过索引的方式来改变dict的value值
book['price'] = 99.99
book
{'title': 'python入门经典', 'author': 'kevin', 'ISBN': 'AABBCC111', 'price': 99.99}
2.2通过update()方法来合并两个字典表
>>> book
{'title': 'python入门经典', 'author': 'kevin', 'ISBN': 'AABBCC111', 'price': 99.99}
>>> job
{'name': 'kevin', 'age': 20, 'position': 'dev'}
>>> book.update(job)
>>> book
{'title': 'python入门经典', 'name': 'kevin', 'age': 20, 'author': 'kevin', 'position': 'dev', 'ISBN': 'AABBCC111', 'price': 99.99}
2.3通过.pop()方法弹出键值对
使用pop(键)弹出一个键值对
>>> book
{'pubdate': '20180821', 'author': 'Bill', 'price': 25.0, 'title': 'python入门'}
>>> book.pop('pubdate')
'20180821'
>>> book
{'author': 'Bill', 'price': 25.0, 'title': 'python入门'}
3通过.keys()
和.values()
访问dict中的key和value
3.1这里需要注意的是,返回的值是dict_keys()和dict_values(),而不是不是list类型
虽然返回的不是list,但是也可以访问该元素
>>> book
{'author': 'Bill', 'price': 25.0, 'title': 'python入门'}
>>> book.keys()
dict_keys(['author', 'price', 'title'])
>>> type(book.keys())
<class 'dict_keys'>
>>> book.values()
dict_values(['Bill', 25.0, 'python入门'])
>>> type(book.values())
<class 'dict_values'>
遍历keys和values的操作
遍历keys的操作
>>> book
{'author': 'Bill', 'price': 25.0, 'title': 'python入门'}
>>> for k in book.keys():
... print(k)
...
author
price
title
遍历values()的操作
>>> for v in book.values():
... print(v)
...
Bill
25.0
python入门
3.2将返回的dict_keys()和dict_values()使用list()转成list
>>> list(book.keys())
['author', 'price', 'title']
2.5通过.items()
来访问key和value
核心语句是for k,v in book.items():
其中注意的是items()
book
{'author': 'Bill', 'price': 25.0, 'title': 'python入门'}
>>> for key,value in book.items():
... print(key,value,sep=':')
...
author:Bill
price:25.0
title:python入门
4字典表的排序的三种方法
4.1将键值转换成list,对list排序,输出value(从3.6版本dict已经是有序的了)
这样要求key是一个有序的,先转换成list然后输出value
>>> score = dict(a='1',b='2',c='3',d='4')
# 此时score的字典表是无序的
>>> score
{'c': '3', 'a': '1', 'b': '2', 'd': '4'}
# 先将keys转化成list
>>> listKeys = list(score.keys())
# 将keys进行排序
>>> listKeys.sort()
# 打印key和value
>>> for listKey in listKeys:
... print(listKey,score.get(listKey),sep=':')
...
a:1
b:2
c:3
d:4
4.2直接使用sorted()
全局函数,推荐使用
sorted()是一个全局的函数,可以作用于任何可迭代的对象,keys()和values()都是可迭代对象
>>> score
{'c': '3', 'a': '1', 'b': '2', 'd': '4'}
>>> ks = score.keys()
>>> for k in sorted(ks):
... print(k,score.get(k))
...
a 1
b 2
c 3
d 4
4.3使用第三方包sorteddict
pass
,后续接触到了再补充
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步