Python第一阶段学习总结

【第5天】Python第一阶段学习总结

2021/09/18

一. 列表基础

  1. 什么是列表(list)

    a. 列表是Python自带的容器型数据类型:将[]作为容器的标志,里面多个元素用逗号隔开:[元素1、元素2、元素3,…]

    b. 列表是可变的(支持增删改);列表是有序的(支持下标操作)

    c. 列表的元素的要求:

    • 任何类型的数据都可以作为列表的元素

    • 同一个列表中的数据类型可以不一致。

  2. 空列表

    list1 = []
    print(list1, type(list1))
    
  3. 列表中的元素

    list2 = [10, 'abc', 12.5, True]
    print(list2)
    
    a = 100
    list3 = [10+2, a % 4, a ** 0.5]
    print(list3)
    
    list4 = [a + 2, a == 20]
    print(list4)
    
    list5 = [10, 'abc', a * 2, [a, 10]]
    print(list5)
    
    # 练习1:定义一个列表保存5个人的年龄
    ages = [10, 18, 24, 35, 88]
    
    # 练习2:定义一个列表保存一个人的姓名、年龄、性别和年龄
    person = ['小明', 18, '男', '15866668888']
    

二. 获取元素

1. 获取单个元素

  1. 语法:

    列表[下标] - 获取列表中指定下标对应的元素
    
  2. 说明:
    a. 列表 - 可以是保存列表的变量,也可以是具体一个列表数据
    b. [] - 固定写法
    c. 下标 - 下标又叫索引,它是元素在列表中的位置信息。
    Python中有序序列中元素的下标有两种:
    a. 元素从左往右从0开始依次增加的下标值
    ​ b. 元素从右往左从-1开始依次减小的下标值

    heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑']
    print(heroes[3], heroes[-4])
    print(heroes[-1])
    print(heroes[1], heroes[-6])
    
    # 注意:下标不能越界
    # print(heroes[10])
    

2. 获取多个元素 - 列表切片

  1. 切片的完整语法:

    列表[开始下标:结束下标:步长]
    

    从开始下标开始取,取到结束下标前为止,每次下标增加指定步长。

    注意:
    a. 如果从开始到结束的方向和步长对应的方向不一致,那么切片的结果是[]。(步长为正表示从前往后,步长为负表示从后往前)
    b. 在不为[]的时候,开始下标对应的值能取到,结束下标对应的值取不到:[开始下标,结束下标)

    heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑']
    print(heroes[1:4:1])   # ['瑶', '奥巴马', '亚索']
    print(heroes[1:4:-1])   # []
    print(heroes[-1:1:2])   # []
    print(heroes[-1:1:-2])   # ['孙膑', '劫', '奥巴马']
    
    print(heroes[0:3:1])   # ['诸葛亮', '瑶', '奥巴马']
    print(heroes[-1:4:2])   # []
    print(heroes[-5:5:1])    # ['奥巴马', '亚索', '劫']
    print(heroes[1:-2:2])   # ['瑶', '亚索']
    print(heroes[-2:2:-1])   # ['赵云', '劫', '亚索']
    
    # 练习:
    heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑']
    # 1) ['诸葛亮', '亚索']
    # 2) ['孙膑', '劫', '奥巴马']
    # 3) ['奥巴马', '亚索', '劫', '赵云']
    
    print(heroes[0:4:3])
    print(heroes[-1:1:-2])
    print(heroes[2:-1:1])
    
  2. 切片语法的省略操作

    a. 省略步长 - 步长默认为1

    列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
    

    b. 省略开始下标 - 如果步长为正表示从第0个元素开始往后取;如果步长为负表示从最后一个开始往前取。

    列表[:结束下标:步长]
    列表[:结束下标]
    

    c. 省略结束下标 - 如果步长为正从开始下标开始取到最后一个元素为止;如果步长为负从开始下标开始取到最前面一个元素为止。

    列表[开始下标::步长]
    列表[开始下标:]
    

3. 遍历列表

  1. 方法一:直接获取元素

    for 变量 in 列表:
        循环体
    
    # 练习:统计scores中90分以上的个数
    count = 0
    scores = [100, 90, 83, 92, 56, 78, 99, 66, 67, 95, 78]
    for x in scores:
        if x > 90:
            count += 1
    print('90分以上的人数:', count)
    
  2. 方法二:通过下标获取元素

    for 变量 in range(len(列表)):
        列表[变量]
        
    补充:len(列表) - 获取指定列表中元素的个数
    
    scores = [100, 90, 83, 92, 56, 78, 99, 66, 67, 95, 78]
    # 顺序获取下标
    for index in range(len(scores)):
        print(index, scores[index])
    
    # 倒序获取下标
    for x in range(-1, -len(scores)-1, -1):
        print(x, scores[x])
    

三. 列表的增删改操作

1. 增:添加元素

  1. 列表.append(元素) - 在列表的最后添加指定元素

  2. 列表.insert(下标,元素) - 在指定下标对应的元素前插入指定元素

    films = ['绿皮书', '遗愿清单', '你的名字', '复仇者联盟']
    print(films)
    
    films.append('肖申克的救赎')
    print(films)
    
    films.append('小丑')
    print(films)
    
    films.insert(2, '触不可及')
    print(films)
    

2. 删:删除元素

  1. del 列表[下标] - 删除列表中指定下标对应的元素

    films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑']
    del films[2]
    print(films)
    
  2. 列表.remove(元素) - 删除列表中指定元素

    a. 如果元素不存在会报错

    b. 如果元素有多个,只删除最前面的那个

    films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑']
    films.remove('小丑')
    print(films)
    
  3. 列表.pop() - 取出列表中最后一个元素
    列表.pop(下标) - 取出列表中指定下标对应的元素

    films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑']
    films.pop()
    print(films)
    
    films.pop(2)
    print(films)
    

3. 改

  1. 列表[下标] = 值 - 将列表中指定下标对应的元素修改成指定的值

    films = ['绿皮书', '遗愿清单', '触不可及', '你的名字', '复仇者联盟', '肖申克的救赎', '小丑']
    films[0] = '葫芦娃'
    print(films)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值