python基础——字典

    技术2022-07-13  68

    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} }
    Processed: 0.018, SQL: 9