在 Python 中,字典是一种可以将相关的两个信息关联起来的操作,并且字典可存储的信息量几乎不受限制,下面一起来跟小编学习一下如何访问和使用字典中的信息吧!
1、什么是字典
字典的定义
字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。
dict1 = {'name':'Jame','age':15}
print(dict1)
使用字典
在 Python 中,字典是一系列键-值对,每个键都与一个值相关联,我们可以通过键来访问与之相关联的值,与键相关联的值可以是数字、字符串、列表、字典、或者任何 python 对象。
字典用花括号{ }来表示,例如:
dict1 = {'name':'Jame','age':15}
print(dict1)
键与值之间用冒号分隔,而键-值对之间用逗号分隔。
访问字典
要想获取与键相关联的值,我们可以依次指定字典名和放在放括号内的键,例如:
dict1 = {'name':'Jame','age':15}
print(dict1['age'])
代码会返回字典 dict1 中与 ’age' 相关联的值 15。
2、字典的基本用法
添加键-值对
字典是一种动态结构,可以随时在其中添加键值对。
score = {'物理':90,'化学':85,'生物':88}
score['英语'] = 95
score['数学'] = 80
print(score)
输出:
{'物理': 90, '化学': 85, '生物': 88, '英语': 95, '数学': 80}
这里要注意,键值对的排列顺序与添加顺序不一定相同,python只关心键与值之间的关联关系,不关心键值对的顺序。
修改字典
首先,我们先创建一个空字典,再分行添加各个键值对。
dict2 = {}
dict2['name'] = 'Tom'
dict2['age'] = 30
dict2['color'] = 'blue'
要修改字典中的值,可依次指定字典名、用[ ]括起来的键以及与该键相关联的新值。即可修改字典。
dict2['age'] = 31
删除键值对
对于字典中不再需要的信息,可以使用 del 语句将其删除,使用 del 语句时,必须指定字典名和要删除的键,例如,删除 dict2 中的键 color 及其值:
del dict2['color']
删除的键值对就永远消失了
3、遍历字典
遍历所有键值对
for key, value in dict2.items():
print(key)
print(value)
要使用 for 循环遍历字典,可声明两个变量分别储存键和值。items() 方法可以返回一个键值对列表,通过 for 循环依次将每个键值对存储到指定的两个变量中。注意,遍历字典时,键值对的返回顺序与储存顺序不一定相同。
遍历所有键
当不需要使用字典中的值时,我们可以使用 keys() 方法遍历字典中的键。
for name in dict2.keys():
print(name.title())
#等价for name in dict2:
print(name.title())
Python 会默认遍历所有的键,所以当需要返回所有键时,也可以不加 keys()
按顺序遍历所有键
要以特定顺序返回元素,我们可以使用 sorted() 函数来获得按特定顺序排列的键列表副本。
for name in sorted(dict2.keys()):
print(name.title())
遍历所有值
当只需要字典中的值时,可以使用 values() 方法,它会返回一个值列表,其中不包含任何键。
for name in dict2.values():
print(name.title())
当值中含有很多重复值时,为了剔除重复项,可使用集合 set()
for name in set(dict2.values()):
print(name.title())
结果会返回一个不重复的列表。
4、嵌套
将字典储存在列表中,或者将列表储存在字典中,称为嵌套。
字典列表
dict1 = {'物理':90,'化学':85,'生物':88}
dict2 = {'物理':95,'化学':88,'生物':70}
dict3 = {'物理':80,'化学':90,'生物':75}
dict4 = [dict1,dict2,dict3]for a in dict4:print(a)
字典嵌套列表
dict5 = {
'color':'blue',
'type':['A','B','C']
}
字典嵌套字典
dict6 = {
'a':{
'name':'Tom',
'age':6
}'b':{
'name':'Marry',
'age':10
}}