列表(2021-9-18)

列表(2021-9-18)

求十个学生的平均分

scores = [80, 69, 97, 96, 86, 69, 60, 74, 66, 92]
result = sum(scores) / len(scores)
print(result)

1、什么是列表(list)

1)列表是python自带的容器型数据类型:将[]作为容器的标志,里面多个元素用,隔开[元素1, 元素2, …] – 一个容器可以同时保存多个数据
2)列表是可变的(支持增删改);列表是有序的(支持下标操作)
3)列表的元素的要求:

a、任何类型的数据都可以作为列表的元素
b、同一个列表中的不同元素类型可以不一样

4)空列表
list1 = []
print(list1, type(list1))
5)列表中的元素
list2 = [12, 'eff', 12.5, True]
print(list2)
a = 100
list3 = [a + 2, a == 20]
print(list3)    # [102, False]
list4 = [10, 'adf', a * 2, [a, 10]]
print(list4)

练习1:定义一个列表保存5个人的年龄

list1 = [18, 28, 42, 23, 43]
print(list1)

练习2:定义一个列表保存一个人的姓名、年龄、性别和电话

list2 = ['姓名', 16, '性别', '电话']
print(list2)

2、获取元素

1)获取单个元素

语法:
列表[下标] - 获取列表中指定下标对应的元素
说明:
列表 - 可以是保存列表的变量也可以是具体一个列表数据
[] - 固定写法
下标 - 下标又叫索引,它是元素在列表中的位置信息
python中有序序列中元素的下标有两种:
a、元素从左往右从0开始依次增加的下标值
b、元素从右往左从-1开始依次减小的下标值
‘’’
heroes = [‘诸葛亮’, ‘瑶’, ‘奥巴马’, ‘亚索’, ‘劫’, ‘赵云’, ‘孙膑’]
print(heroes[3])
print(heroes[1], heroes[4], sep=’ ,’)
注意:下标不能越界

(重)2)获取多个元素 - 列表切片

‘’’

1、语法1:

列表[开始下标:结束下标:步长]
从开始下标开始取,取到结束下标前为止,每次下标增加指定步长。
注意:
a、如果从开始到结束的方向和步长对应的方向不一致,那么切片的结果是[]。(步长为正表示从前往后,负则从后往前)
b、在不为[]的时候,开始下标对应的值能取到,结束下标对应的值娶不到:[开始下标,结束下标]
‘’’
print(heroes[1:4:1]) # [‘瑶’, ‘奥巴马’, ‘亚索’]
print(heroes[1:4:-1]) #
print(heroes[-1:4:1]) #
print(heroes[-1:2:-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) ['诸葛亮', '亚索']
   print(heroes[0:4:3])
2) ['孙膑', '劫', '奥巴马']
   print(heroes[-1:-6:-2])
3) ['奥巴马', '亚索', '劫', '赵云']
   print(heroes[2:6])
2、切片语法的省略操作

a、省略步长 - 步长就是1
列表[开始下标:结束下标] == [开始下标:结束下标:1]
b、省略开始下标 - 如果步长为正表示从第0个元素开始往后取;如果步长为负从最后一个开始往前取
列表[:结束下标:步长]
列表[:结束下标]
c、省略结束下标 - 如果步长为正从开始下标取到最后一个元素为止;如果步长为负从开始下标取到最前面一个元素为止

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

heroes = ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑']
print(heroes[1:4])    # ['瑶', '奥巴马', '亚索']
print(heroes[-1:1])   # []

print(heroes[:3])     # ['诸葛亮', '瑶', '奥巴马']
print(heroes[:3:-2])  # ['孙膑', '劫']
print(heroes[:-1:-1]) # []

print(heroes[2:])     # ['奥巴马', '亚索', '劫', '赵云', '孙膑']
print(heroes[-2::-2]) # ['赵云', '亚索', '瑶']

print(heroes[::2])    # ['诸葛亮', '奥巴马', '劫', '孙膑']
print(heroes[:])      # ['诸葛亮', '瑶', '奥巴马', '亚索', '劫', '赵云', '孙膑']
print(heroes[::-1])   # ['孙膑', '赵云', '劫', '亚索', '奥巴马', '瑶', '诸葛亮']
3)遍历列表

方法一(直接获取元素):
for 变量 in 列表:
循环体
方法二(通过下标获取元素):
for 变量 in range(len(列表)):
列表[变量]
补充:len(列表) - 获取指定列表中元素的个数

scores = [100, 90, 83, 92, 56, 78, 99, 66, 67, 95, 78]
sum1 = 0
for a in scores:
    if a >= 90:
        sum1 += 1
print('个数:', sum1)
print('-------------------------------分割线-------------------------------------')
for a in range(len(scores)):
    print(a, scores[a])

注意:首先要拿到列表的下标,再取下标对应的值

3、列表的增删改

1)增 - 添加元素
1、列表.append(元素) - 在列表的最后添加指定元素
2、列表.insert(下标, 元素) - 在指定下标对应的元素前插入指定元素
films = ['绿皮书', '意愿清单', '你的名字', '复仇者联盟']
print(films)                  # ['绿皮书', '意愿清单', '你的名字', '复仇者联盟']
films.append('肖申克的救赎')
print(films)                  # ['绿皮书', '意愿清单', '你的名字', '复仇者联盟', '肖申克的救赎']
films.insert(2, '泰坦尼克号')
print(films)                  # ['绿皮书', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟', '肖申克的救赎']
2)删 - 删除元素
1、del列表[下标] - 删除列表中指定下标对应的元素
2、列表.remove(元素) - 删除列表中指定元素(如果元素不存在会报错;如果元素有多个,只会保留最后一个)
3、列表.pop() - 取出列表中最后一个元素

列表.pop(下标) - 取出列表中指定下标对应的元素

films = ['绿皮书', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟', '肖申克的救赎']
del films[2]
print(films)                  # ['绿皮书', '意愿清单', '你的名字', '复仇者联盟', '肖申克的救赎']
films.remove('肖申克的救赎')
print(films)                  # ['绿皮书', '意愿清单', '你的名字', '复仇者联盟']

films = ['绿皮书', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟', '肖申克的救赎']
del_film = films.pop()
print(films)                  # ['绿皮书', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟']
print(del_film)               # 肖申克的救赎

del_film = films.pop(1)
print(films)                  # ['绿皮书', '泰坦尼克号', '你的名字', '复仇者联盟']
print(del_film)               # 意愿清单
3)改

列表[下标] = 值

films = ['绿皮书', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟', '肖申克的救赎']
films[0] = 'V字仇杀队'
print(films)                  # ['V字仇杀队', '意愿清单', '泰坦尼克号', '你的名字', '复仇者联盟', '肖申克的救赎']
films[4] = '杀手不太冷'
print(films)                  # ['V字仇杀队', '意愿清单', '泰坦尼克号', '你的名字', '杀手不太冷', '肖申克的救赎']





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值