python基础——字典
1.定义
-
python中的字典是一系列键—值对,每一个键都与一个值相关联。可以使用键来访问与它相关联的值。与键相关联的值可以是数字、字符串、列表甚至字典。任何python对象都可用作字典中的值。
-
python中,字典用放在**花括号{}**中的一系列键—值对表示。如:
student={'name':'niki','sex':'male','ID':1} #键值用冒号分隔,键值对之间用逗号分隔 #字典中没有键值对的数量限制
-
指定键时,python将访问与之相关联的值
-
python中不关心键值对的顺序,只关系键与值之间的关系
2.访问、添加、修改、删除
2.1 访问字典中的值
**方法:**要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如:
name1=student['name']
print(student['name'])
2.2 添加键—值对
-
字典是一种动态结构,可以随时在其中添加键值对。
-
添加键值对,要依次指定字典名、用方括号括起来的键和其相关联的值。举个栗子:
student['grade'] = 100 student['girlfriend']='lili' #这样就给学生信息新添加了grade和gf
-
创建空字典
stu = {} #定义时只给一个花括号 #现实中会有时先定义空字典,再往里面添加键值对 stu['name'] = 'niki' stu['grade'] = 100
2.3 修改字典中的值
-
依次指定字典名、用方括号括起来的键以及与该键相关联的新值。
stu['grade'] = 0
2.4 删除键值对
-
使用del语句,指定字典名和键名,将其删除
del stu['grade']
2.5 由类似对象组成的字典
-
字典可以储存一个对象的多种信息,同时也可以储存多个对象的同一种信息,如:
favorite_stars={ 'lili':'adam lambert', 'niki':'billi', 'kiki':'kiki', } #多行定义字典的时候一定注意格式和缩进!!! #如果一个语句过长的话,要分行,分行的时候注意缩进
3.遍历字典
3.1 遍历所有键值对
- 用for循环,可声明两个变量,用于存储键值对中的键和值
for n,star in favorite_stars:
print(n)
print(star)
3.2 遍历字典中所有的键
- 不需要访问字典中的值,只要求访问字典中的键时,使用keys()方法
for x in stu.keys():
print(x)
#遍历字典时,会默认遍历所有的键,因此
#for x in stu:
#print(x)
#输出的结果一样。加keys()可以让代码更加清晰
3.3 按照顺序遍历字典中的所有键
-
**注:**字典明确的记录键和值之间的关联关系,但获取字典元素的时候,获取元素的顺序是不可预测的,因为字典关注的是键和值之间的关联关系。
-
但是我就是想要按照顺序遍历字典怎么办呢!?
-
你可以在for循环中对返回的键进行排序。
-
怎么排序来着呢?看上一篇博客。
for x in sorted(stu.keys()): print(x) #我还是感觉意义不大来着
3.4 遍历字典中所有的值
- **values()**方法,用法和Keys()类似
for x in stu.values():
print(x)
- 剔除字典中值的重复项,可用set()函数
for x in set(stu.values()):
print(x)
4 嵌套
- 很多时候为了实际需要,常常需要在列表中嵌套字典,在字典中嵌套字典,在字典中嵌套列表(禁止套娃)
#字典列表
stu1={'name':'stu1','ID':'2191'}
stu2={'name':'stu2','ID':'2192'}
stu3={'name':'stu3','ID':'2193'}
stu_infor=[stu1,stu2,stu3]
#字典中嵌套列表
stu={
'name':'lili',
'subject':['chinese','math','computer science']
}
#字典中嵌套字典
classes={
'class1':{'number':100,'grade':100},
'class2':{'number':200,'grade':100}
}