字典


一个简单的字典

例:我们定义了一个学生的信息字典
student= {'name':'张三','age':20,'sex':'男'}

使用字典

在python中,字典是一系列键值对。每一个键与一直值相关联。可以使用键来访问与之相关联的值。值可以为任何对象。

字典用{}来表示,键和值之间使用来隔开,多个键值对之间使用分隔。

访问字典中的值

想要获取与键相关联的值,可以指定字典名和放在方括号[ ]中的

student= {'name':'张三','age':20,'sex':'男'}

#使用字典名[键]来获取值

student_name = student['name']

print(student_name)

print(student['sex'])


添加键值对

字典是动态结构,我们可以修改字典中的键值对。添加键值对,需要指定字典名,用方括号括起键,添加值。

例:

student= {'name':'张三','age':20,'sex':'男'}
student['score'] ='89'

print(student)

创建一个空字典

例:

student1 = {}

student1['name'] = '李四'

student1['age'] = 16

print(student1)

修改字典中的值

修改字典中的值。指定字典名,方括号括起键,修改后的值。

例:

student2= {'name':'张三','age':20,'sex':'男'}

print(student2)

student2['name'] = '王五'

print(student2)#可以看到学生的姓名更改为王五

删除键值对

对于字典中不需要的信息,可以使用del语句进行删除

例:

student3= {'name':'张三','age':20,'sex':'男'}

del student3['age']

print(student3)

注意:del语句进行删除,键值对永久消失

练习:

#使用一个字典来存储一个熟人的信息,包括姓,名,年龄,城市,字典包含的键是first_name last_name age city

names_li={'first_name':'jack','last_name':'li','age':17,'city':'beijing'}

print(names_li)

#使用一个字典来存储。3个人作为键,每个人喜欢的数字为值

names_3= {'jacd':13,'pony':13,'may':15}

print(names_3)

遍历字典

一个字典可以包含几个或者百万个键值对,因此可以通过遍历来获取字典中的键、值、键值对。

遍历所有键值对

遍历字典中的键值对 使用items()方法进行遍历,用两个变量接受key,value

names_3= {'jacd':13,'pony':13,'may':15}

for key,value in names_3.items():

    print(key,value)

遍历字典中所有的键

当我们只需要获取字典中的键时,可以使用key()方法

names_3= {'jacd':13,'pony':13,'may':15}

for  keyin names_3.keys():

    print(key)


遍历字典中的所有值

names_3= {'jacd':13,'pony':13,'may':15}

for  valuein names_3.values():

    print(value)

嵌套

有时候我们需要在字典中存储列表,或者将列表作为值存储到字典中,这称为嵌套。可以在列表中嵌套字典,在字典中嵌套列表,也可以在字典中嵌套字典。

字典列表

字典只能储存一种人的各种信息

例:创建一个人的属性模板,循环生成30次加入一个列表,我们遍历前5个人

student_range = []

for iin range(30):

student4 ={'name':'王五','age':42}

student_range.append(student4)

for iin student_range[:5]:

print(i)

如果我们想要不同的属性,可以使用if加入条件,进行重新赋值

例:我们创建30个同属的人,将前5个创建的属性重新赋值

student_range = []

for iin range(30):

student5 ={'name':'王五','age':42}

student_range.append(student5)

for iin student_range[:5]:

# print(type(i))

    if i['name'] =='王五':

i['name'] ='张三'

        i['age' ]=32

print(student_range)

当然,如果想要更多属性的人,可以使用if elif 等语法,进行多条件的判断

在字典中存储列表

有时候,我们还需要将列表存储到字典中。

例如:我们如何形容英雄?如果使用列表,我们只能形容英雄的名称,而使用字典后,我们可以形容英雄的其他描述

例:

herso = {'姓名 ':'亚瑟',

'属性':['宝剑','简单','上单']

}#当我们想知道亚瑟的属性时,通过属性关键字,就可以返回多个值,而不是单个值

当我们想使用一个关键字获得多个值时,可以使用字典中镶嵌列表的方式

字典中存储字典

字典中镶嵌字典,这样使用后代码会复杂起来。

例:

heros ={'亚瑟':{'位置':'上单','武器':"宝剑"},

'安琪拉':{'位置':'中单','武器':"魔法书"}

}

for key,value in heros.items():
print(key,value['位置'],value['武器'])

#我们可以使用一个键来对应多个键值对


顶顶顶

你可能感兴趣的:(字典)