嵌套列表是指一个列表中包含其他列表作为元素的数据结构。嵌套列表可以有任意层级的嵌套,即一个列表中可以包含其他列表,而这些列表又可以包含其他列表,以此类推。
如:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 访问嵌套列表中的元素
print(nested_list[0]) # 输出:[1, 2, 3]
print(nested_list[1][2]) # 输出:6
# 修改嵌套列表中的元素
nested_list[2][1] = 10
print(nested_list) # 输出:[[1, 2, 3], [4, 5, 6], [7, 10, 9]]
# 迭代访问嵌套列表中的元素
for sublist in nested_list:
for item in sublist:
print(item, end=' ')
print()
# 输出:
# 1 2 3
# 4 5 6
# 7 10 9
练习:保存5个学生,3门课成的成绩,并统计每个学生的平均成绩和每门课的最高分和最低分。
"""
example036 - 保存5个学生,3门课成的成绩,
并统计每个学生的平均成绩和每门课的最高分和最低分
Author: 不在同一频道上的呆子
Date: 2024/1/27
"""
import random
names = ['张三', '李四', '王五', '小明', '小红']
courses = ['语文', '数学', '英语']
# scores = [86, 92, 69, 86, 92, 69, 86, 92, 69, 86, 92, 69, 86, 92, 69, 86, 92, 69]
# scores = [
# [86, 92, 69],
# [86, 92, 69],
# [86, 92, 69],
# [86, 92, 69],
# [86, 92, 69],
# [86, 92, 69]
# ]
scores = [[random.randrange(50, 101) for _ in range(len(courses))] for _ in range(len(names))]
# print(scores)
for i, name in enumerate(names):
for j, course in enumerate(courses):
print(f'{name}的{course}成绩:{scores[i][j]}')
# 统计每个学生的平均成绩
for i, name in enumerate(names):
print(f'{name}平均成绩:{sum(scores[i]) / len(courses):.1f}')
# 统计每门课的最高分和最低分
for j, course in enumerate(courses):
temp = [scores[i][j] for i in range(len(names))]
print(f'{course}的最高分:{max(temp)}')
print(f'{course}的最低分:{min(temp)}')