美文网首页
python 第4关 列表和字典-收纳的艺术

python 第4关 列表和字典-收纳的艺术

作者: Fade1992 | 来源:发表于2019-12-18 18:59 被阅读0次

    第4关 列表和字典-收纳的艺术

    课程目标

    1.熟练掌握列表、字典中元素的增删改查
    2.理解列表和字典的区别

    课程难点

    1.列表与字典增删改查的异同
    2.正确使用切片,深刻理解切片时冒号左右数字的意义

    课程重要内容重现

    一、列表

    1.代码格式
    students是列表名,数据存储在\color{red}{中括号[]}里,用逗号隔开并使用等号赋值给列表。中括号里面的每一个数据叫作“元素”。
    列表中的元素是有自己明确的“位置”的,元素相同,在列表中排列顺序不同,就是两个不同的列表。
    列表中字符串、整数、浮点数都可以存储。

    list=['小明',17,5.2]
    

    1.提取元素
    1)、偏移量:元素在列表中的编号。

    • 偏移量是从0开始的;
    • 列表名后加带偏移量的中括号,就能取到相应位置的元素。
      2)、切片:用冒号来截取列表元素的操作。
    • \color{red}{冒号左边空(或者为0),:m,表示从头取m个元素;}
    • \color{red}{右边空(或者为0),n:,跳过前n个元素把剩下的取完;}
    • \color{red}{冒号左右都有数字时,n:m,表示跳过前n个元素,取到第m个。}
      \color{red}{(取出前m个元素中除了前n个后剩下的那些)}

    切片截取了列表的一部分,所以得到的结果仍然是一个列表。(即使只有一个元素,也是在列表里的,与用偏移量取单个元素区别开)

    students=['小明','小红','小刚']
    print(students[2])
    #使用偏移量提取单一元素,结果显示:
    #小刚
    print(students[2:])
    #使用切片,即使结果仍然只有一个元素,但显示为列表:
    #['小刚']
    

    3)特别地,a,b,c=students,也可以提取出列表中的元素,变量分别用逗号隔开,且变量的数量与列表元素数一致,最终列表元素会分别赋值给变量,例如:

    appetizer=['话梅花生','拍黄瓜','凉拌三丝']
    a,b,c=appetizer
    print(a)
    print(b)
    print(c)
    print(a,b,c)
    #结果显示为
    #话梅花生
    #拍黄瓜
    #凉拌三丝
    #话梅花生 拍黄瓜 凉拌三丝
    

    1.增加/删除元素.

    1)增加元素列表名.append()。注意这里是.不是空格!
    append后的括号里只能接受一个参数,结果是让列表末尾新增一个元素。列表⻓度可变,理论容量无限,所以支持任意的嵌套。

    list3=[1,2]
    list3.append(3)
    print(list3)
    #添加‘3’这个元素
    #结果显示:
    #[1,2,3]
    list3.append(4,5)
    list3.append([4,5])
    print(list3)
    #添加‘[4,5]’这个列表,也就是append()的参数为一个列表,也是一个参数,所以不会报错
    #结果显示:
    #[1,2,3,[4,5]]
    

    但是append(4,5)会报错,因为给了两个元素(没有作为一个整体,所以算两个参数)。注意!!千万不能:a=student.append(3) 如果想一起加两个元素 用expend

    aList = [123, 'xyz', 'zara', 'abc', 123];
    bList = [2009, 'manni'];
    aList.extend(bList)
    
    print "Extended List : ", aList ;
    以上实例输出结果如下:
    Extended List :  [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
    

    2)删除元素del列表名[元素的索引]。注意这里是空格不是.了!
    与append()函数类似,能删除单个元素、多个元素(切片)、整个列表。
    3)修改元素
    使用偏移量修改对应位置的元素。

    list1 = ['小明','小红','小刚','小美']
    list1[1] = '小兰'
    print(list1)
    #结果显示
    #['小明','小兰','小刚','小美']
    

    二、字典

    1.代码格式

    • 字典外层是大括号{},用等号赋值;
    • 列表中的元素是自成一体的,而字典的元素是由键值对构成的,用英文冒号连接。有多少个键值对就有多少个元素。如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。
    • 键值对间用逗号隔开
      所存储的两种数据若存在一一对应的情况,用字典储存会更加方便。唯一的键和对应的值形成的整体,我们就叫做【键值对】。键具备唯一性,而值可重复。
      字典中数据是随机排列的,调动顺序也不影响。所以列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
      (注:len()函数用于获取数据⻓度)
    students=['小明','小红','小刚']
    scores={'小明':95,'小红':90,'小刚':90}
    print(len(students))
    print(len(scores))
    #结果显示
    #3
    #3
    #字典的元素个数,数冒号就行了
    

    2.提取元素

    字典没有偏移量,所以在提取元素时,中括号中应该写键的名称,即字典名[字典的键]。提取出来的是key对应的value,而不会显示键的数据!

    3.增加/删除元素、

    1)新增元素
    字典名[键]=值。每次只能新增一个键值对。scores['小刚','小美']=92,85,这样是不对的,最终会输出('小刚','小美':(92,85))作为一个键值对。

    album={'周杰伦':'七里香'}
    album['王力宏']='心中的日月'
    album['林俊杰']='小酒窝'
    print(album)
    print(album['周杰伦'])
    #结果显示
    #{'周杰伦':'七里香','王力宏':'心中的日月','林俊杰':'小酒窝'}
    #七里香
    

    2)删除元素
    del字典名[键]

    album={'周杰伦':'七里香','王力宏':'心中的日月'}
    delalbum['周杰伦']
    print(album)
    #结果显示
    #{'王力宏':'心中的日月'}
    

    3)修改元素
    如果不是整个键值对都不需要,只需要改变对应key下的value,修改就可以,不需要del。

    dict1={'小明':'男'}
    dict1['小明']='女'
    print(dict1)
    #字典没有偏移量,只能通过key找到元素位置
    

    三、列表与字典的嵌套

    1.列表与列表
    列表中有两个列表元素,[1]表示取第二个元素(列表),[2]表示取第二个元素中的第三个元素(偏移量为2)。

    student=[['小红','小黄','小橙'],['小绿','小蓝','小紫','小青']]1
    print(student[1][2])
    #结果显示为
    #小紫
    

    1.字典与字典
    字典中存储了两个字典,所以提取数据时只能用key值。

    scores={'第一组':{'小明':95,'小红':96},'第二组'{'小刚':94',小青':99}}
    print(scores['第一组']['小红'])
    #结果显示:
    #96
    

    1.列表与字典
    使用偏移量从最外层括号到最内层括号取数。查找townee列表中的第六个元素中的第2个元素(一定是字典,因为之后用的是键值而不是偏移量)中key为'反面⻆色'的value。

    townee=[
            {'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
              '丑小鸭','坚定的锡兵','睡美人','青蛙王子',
              [{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]]
    print(townee[5][1]['反面角色'])
    
    截屏2019-12-22下午11.03.35.png

    相关文章

      网友评论

          本文标题:python 第4关 列表和字典-收纳的艺术

          本文链接:https://www.haomeiwen.com/subject/qikunctx.html