day6-列表

day6-列表

1、认识列表

  1. 系统类型,是容器型数据类型(同时保存多个数据);将[]作为容器的标志,里面多个元素(容器中每个独立的数据)用逗号隔开: [数据1, 数据2, 数据3, 数据4,…]
scores = [98, 90, 78, 67, 66, 70, 55, 99, 34, 82]
  1. 列表是可变的(元素的个数和元素的值可变 - 支持增删改操作);列表是有序(支持索引操作、顺序影响结果)
# 列表有序,所以顺序影响结果
print([10, 20, 30] == [20, 10, 30])     # False
# 集合无序,所以顺序不影响结果
print({10, 20, 30} == {20, 10, 30})     # True
  1. 列表的元素:任何类型的数据都可以作为列表的元素
list1 = [10, 1.23, True, None, 'abc', [1, 2]]
print(list1)
  1. 空列表
list2 = []

2、获取元素

1)语法:列表[索引]:获取列表中指定索引对应的元素

2)说明:
a.列表具体的一个列表或者保存列表的变量
b.[] 固定写法
c.索引 又叫下标;索引指的是元素在有序序列中的位置信息。
列表一旦确定了,那么列表中每个元素的索引就确定了。
索引的确定方式:从前往后索引值从0开始不断加1;从后往前从-1开始不断减1

nums = [90, 89, 77, 99, 50]
print(nums[2], nums[-3])

注意:索引不能越界

names = ['张三', '李四', '老王']
# print(names[3])       # IndexError: list index out of range

练习

# 练习:已知scores中保存的是一个班级所有学生的分数(分数已经按照从大小排好序)
scores = [99, 97, 95, 88, 80, 79, 73, 66, 62, 57, 40]
# 问题1:打印最高分
print(scores[0])
# 问题2:打印最低分
print(scores[-1])
# 问题3:打印中位数(如果scores中分数的个数是偶数个,中位数打印2个)
# [10, 34, 9, 3]    -  1(4//2-1),2(4//2)   -  4
# [23, 45, 6, 78, 4, 45]  -  2(6//2 - 1),3(6//2)  - 6
count = len(scores)
if count % 2 != 0:
    print(scores[count//2])
else:
    print(scores[count//2-1], scores[count//2])

3、切片

1)完整语法:
列表[开始下标:结束下标:步长]

2)确定切片的结果
第一步:看从开始下标到结束下标的方向和步长对应的方向是否一致(步长为正表示从前往后取,步长为负表示从后往前取),如果不一致结果一定是空列表
第二步:确定有效范围(开始下标对应的元素取得到,结束下标对应的元素取不到
第三步:按照步长的方向和绝对值来获取元素
方向:为正在有效范围内从前往后取;为负在有效范围内从后往前取
绝对值:绝对值为1,1个1个的取;绝对值为2,取1个跳1个再取1个;绝对值为3,取1个跳过2个再取1个,…

names = ['猪', '狗', '牛', '马', '鼠', '龟', '龙', '鱼', '猫']
# ['狗', '牛', '马']
print(names[1:4:1])
# ['猪', '牛']
print(names[0:-5:2])
# ['马']
print(names[3:-2:4])
# ['鱼', '鼠']
print(names[-2:1:-3])
  1. 切片的省略写法
    完整语法:列表[开始下标:结束下标:步长]
    a.省略步长: 列表[开始下标:结束下标] - 相当于步长为1
    b.省略开始下标:列表[:结束下标:步长] - 如果步长为正从第一个元素开始;如果步长为负从最后一个元素开始
    c.省略结束下标:列表[开始下标::步长] - 如果步长为正一直取到最后一个元素;如果步长为负一直取到第一个元素
names = ['猪', '狗', '牛', '马', '鼠', '龟', '龙', '鱼', '猫']
# 省略步长
# ['马', '鼠', '龟', '龙']
print(names[3:-2])          #  == print(names[3:-2:1])

# 省略开始下标
# ['猫', '鱼']
print(names[:-3:-1])
# ['猪', '狗', '牛', '马', '鼠']
print(names[:5])

# 省略结束下标
# ['马', '牛', '狗', '猪']
print(names[3::-1])
# ['猫', '龙', '鼠', '牛', '猪']
print(names[3:])
# ['猫', '龙', '鼠', '牛', '猪']
print(names[::-2])

4、遍历

方法1: - 直接获取元素
for 变量 in 列表:
循环体(变量就是元素)

# 统计scores中不及格的人数
scores = [67, 89, 90, 99, 45, 61, 77, 23]
count = 0
for x in scores:
    if x < 60:
        count += 1
print('不及格人数:', count)

方法2: - 先获取每个元素的下标,然后再根据下标获取元素
for 变量 in range(len(列表)):
循环体(变量是元素对应的下标)

for x in range(len(names)):
    print(x, names[x])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值