• 20190513——python基础(列表、数据类型:字典、列表和字典的异同)


    二、python基础(列表、数据类型:字典、列表和字典的异同)                                             


     

    1、列表

    1)什么是列表

    2)从列表提取单个元素

     

    # 偏移量。列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。
    # 1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取到相应位置的元素。
    students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大'] print(students[3]) >>>小六
    students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大']
    print(students[3])
    # 提取字典中的第三个元素,从0开始数,往右数第三个元素:“小六”
    # >>>小六
    提取字典元素

     3)从列表提取多个元素

    # 这种用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以让我们从列表中取出多个元素。
    list2 = [5,6,7,8,9] print(list2[:]) # 打印出[5, 6, 7, 8, 9] print(list2[2:]) # 打印出[7, 8, 9] print(list2[:2]) # 打印出[5, 6] print(list2[1:3]) # 打印出[6, 7] print(list2[2:4]) # 打印出[7, 8]
    # 列表切片口诀:冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。后半句:冒号左边数字对应的元素要拿,右边的不动(可再回顾下代码)。
    # 偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表
    
    students = ['小九','小八','小七','小六','小五','小四','小三','老二','老大']
    print(students[2:4])
    print(students[2])
    
    >>>['小七', '小六']
       小七

    4)给列表增加/删除元素

    增加元素

    # 请运行以下代码:报错后,可读一下报错信息,然后将第6行注释掉再运行。
    list3 = [1,2]
    list3.append(3)
    # 注意格式是:列表名.append()
    # append后的括号里只能接受一个参数
    print(list3) #list3.append(4,5) list3.append([4,5])
    # append函数并不生成一个新列表,而是让列表末尾新增一个元素。而且,列表长度可变,理论容量无限,所以支持任意的嵌套。
    print(list3) >>>[1, 2, 3] [1, 2, 3, [4, 5]]

    删除元素

    students = ['小明','小红','小刚','小美']
    del students[1]
    print(students)
    >>>['小明', '小刚', '小美']
    
    # del语句非常方便,既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)。

    2、字典

    1)什么是字典

    # 字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符。
    # 而不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ };2.列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。
    
    students = ['小明','小红','小刚']
    scores = {'小明':95,'小红':90,'小刚':90}
    # 唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:'小明':95、'小红':90、'小刚':90
    # 强调:字典中的键具备唯一性,而值可重复。也就是说字典里不能同时包含两个'小明'的键,但却可以有两个同为90的值。
    # 如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。
    students = ['小明','小红','小刚']
    scores = {'小明':95,'小红':90,'小刚':90}
    print(len(students))
    print(len(scores))
    
    >>>3
       3

    2)从字典中提取元素

    # 字典的索引,和列表通过偏移量来索引不同,字典靠的是键。
    scores = {'小明': 95, '小红': 90, '小刚': 90}
    print(scores['小明'])
    >>>95
    # 这便是从字典中提取对应的值的用法。和列表相似的是要用[ ],不过因为字典没有偏移量,所以在中括号中应该写键的名称,即字典名[字典的键]。

    3)给字典增加/删除元素

    album = {'周杰伦':'七里香','王力宏':'心中的日月'}
    del album['周杰伦']
    print(album)
    album['周杰伦'] = '十一月的萧邦'
    print(album)
    print(album['周杰伦'])
    
    >>>
    {'王力宏': '心中的日月'}
    {'王力宏': '心中的日月', '周杰伦': '十一月的萧邦'}
    十一月的萧邦
    
    # 删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值。

    3、列表和字典的异同

     1)不同点:

    • 列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
    • 列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表。我们来看看代码:
    # 如果==左右两边相等,值为True,不相等则为False。
    print(1 == 1)
    # 1等于1,所以值为True
    print(1 == 2)
    # 1不等于2,所以为False
    students1 = ['小明','小红','小刚']
    students2 = ['小刚','小明','小红']
    print(students1 == students2)
    scores1 = {'小明':95,'小红':90,'小刚':100}
    scores2 = {'小刚':100,'小明':95,'小红':90}
    print(scores1 == scores2)
    
    >>>
    True
    False
    False
    True

     2)共同点:

    • 在列表和字典中,如果要修改元素,都可用赋值语句来完成。看一下代码:
    list1 = ['小明','小红','小刚','小美']
    list1[1] = '小蓝'
    print(list1)
    dict1 = {'小明':''}
    dict1['小明'] = ''
    print(dict1)
    
    >>>['小明', '小蓝', '小刚', '小美']
    {'小明': ''}
    • 支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
    # 列表提取元素
    students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
    print(students[1][3])
    >>>小芳
    
    # 字典提取键
    scores = {
        '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
        '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
        }
    print(scores['第二组']['小芳'])
    >>>88
    # 列表和字典嵌套的情况下,提取元素:
    
    students = {
        '第一组':['小明','小红','小刚','小美'],
        '第二组':['小强','小兰','小伟','小芳']
        }
    scores = [
        {'小明':95,'小红':90,'小刚':100,'小美':85},
        {'小强':99,'小兰':89,'小伟':93,'小芳':88}
        ]
    print(students['第一组'][2])
    print(scores[0]['小刚'])
    
    >>>小刚
       100

    作业:

    1、

    # 把列表list1中的'love'取出来,并打印出来。
    list1 = [{'嫉妒':'envy'},{'':'hatred'},{'':'love'}]
    print(list1[2][''])
    print(list1[1][''])
    
    # 把字典dict1中的'love'取出来,并打印出来。
    dict1 = {1:['cake','scone','puff'],2:['London','Bristol','Bath'],3:['love','hatred','envy']}
    print(dict1[3][0])
    
    # 提取A
    tuple1 = ('A','B')
    list2 = [('A','B'),('C','D'),('E','F')]
    print(tuple1[0])
    print(list2[0][0])
    
    >>>
    love
    hatred
    love
    A
    A

    2、

    # 请你通过所学知识,把列表中的“狼”取出来,并打印出来。
    
    townee = [
        {'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
        '丑小鸭','坚定的锡兵','睡美人','青蛙王子',
        [{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':''}]
        ]
    print(townee[5][1]['反面角色'])
    
    >>>
  • 相关阅读:
    Java四种内部类
    Java多态详解
    为啥java要使用 set ()和get()方法---封装
    Python---django轻量级框架
    java 读取数据库数据转化输出XML输出在jsp页面
    操作系统专栏
    learn more ,study less(三):超越整体性学习
    learn more ,study less(二):整体性学习技术(下)
    learn more ,study less(二):整体性学习技术(上)
    Spring博客专栏
  • 原文地址:https://www.cnblogs.com/yssshiny/p/10857861.html
Copyright © 2020-2023  润新知