2.7. 列表的循环遍历

所谓遍历,就是将列表的每个元素依次取出进行处理,代码如下:

# 定义一个成绩列表
score_list = [62, 50, 60, 48, 80, 20, 95]

# 使用while循环遍历列表
index = 0
while index < len(score_list):
    print(score_list[index])
    index += 1

# 使用for循环遍历列表
for item in score_list:
    print(item)

# 使用for循环遍历列表(通过range函数 和 len函数按照索引遍历)
for index in range(len(score_list)):
    print(score_list[index])
  1. 在上述遍历中,while循环需要结束条件,所以我们定义了index变量,所以打印时,就可以方便的借助index输出当前元素是第几个。
  2. 而for循环的遍历,不需要index,那如果也想打印元素是第几个,但又不想去定义index的话,可以借助enumerate这个内置函数,它可以在遍历时获取索引和值,代码如下:
# 使用for循环遍历列表(通过enumerate函数,同时获取下标(索引值)和元素)
# enumerate 的 start 参数,可以让计数从指定值开始(改变的是循环时的“编号”,不是真正的索引值)
for index, item in enumerate(score_list, start=5):
    print(index, item, score_list[0])
print('最后的打印', score_list[0])

2.8. 列表特点总结

  1. 可存放不同类型的元素。
  2. 元素是有序存储的(正索引、负索引)。
  3. 列表中的元素允许重复。
  4. 元素是允许修改的(增、删、改、查、其他操作)。
  5. 长度不固定,可以随着操作自动调整大小。

一句话总结:列表是最常用的数据容器,当遇到要“存储一批数据”的场景时,首选列表。

2.9. 列表小练习

需求:实现一个成绩统计程序,可以对多名学生的成绩,进行统计和分析。具体统计的项目如下图:

图片[1]-2.7. 列表的循环遍历-大赛人网

备注:用户可以连续输入学生成绩,直到用户输入“结束”字符串。

print('请输入学生成绩,输入“结束”停止录入')
score_list = []

# 持续循环,让用户输入学生成绩
while True:
    data = input('📝请输入成绩:')
    if data == '结束':
        break
    else:
        score_list.append(int(data))

# 如果score_list中有数据,则开始统计
if score_list:
    # 统计平均分
    avg = sum(score_list) / len(score_list)
    # 合格人数
    pass_count = 0
    # 优秀人数
    excellent_count = 0
    # 遍历列表,开始统计
    for item in score_list:
        if item >= 60:
            pass_count += 1
        if item >= 90:
            excellent_count += 1
    # 合格率
    pass_rate = pass_count / len(score_list) * 100
    # 优秀率
    excellent_rate = excellent_count / len(score_list) * 100
    # 打印信息
    print('********⬇️统计信息如下⬇️********')
    print(f'🧑‍🎓总人数为:{len(score_list)}')
    print(f'🔺最高分为:{max(score_list)}')
    print(f'🔻最低分为:{min(score_list)}')
    print(f'✅合格人数:{pass_count}人')
    print(f'📈合格率为:{pass_rate:.1f}%')
    print(f'🏆优秀人数:{excellent_count}人')
    print(f'📈优秀率为:{excellent_rate:.1f}%')
    print(f'📊平均分数:{avg:.1f}')
else:
    print('您没有输入任何成绩!')

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容