列表插画

之前一个变量只装一个值:全班 50 人的成绩,难道要写 50 个变量?列表(list)就是"一排连号的小盒子",一个名字管一堆数据。

一、列表:最常用的"数据排"

scores = [85, 92, 78, 90]   # 方括号,一排成绩
names = ["小明", "小红", "小刚"]

print(scores[0])    # 85:编号从 0 开始!第一个是 [0]
print(scores[-1])   # 90:-1 代表倒数第一个
print(len(scores))  # 4:len() 数一数有几个
💡 编号从 0 开始是编程界的祖传规矩,几乎所有语言都这样。记成"第 0 号盒子",多用几次就习惯了。

二、列表的常用操作

列表操作示意

scores = [85, 92, 78]

scores.append(90)       # 末尾追加:[85, 92, 78, 90]
scores.insert(1, 88)     # 在1号位置插入88:[85, 88, 92, 78, 90]
scores.remove(78)        # 按值删除第一个78
last = scores.pop()      # 弹出末尾:last=90,列表剩[85, 88, 92]
scores[0] = 100          # 直接改:1号盒子换成100
scores.sort()            # 从小到大排序
scores.reverse()         # 翻转顺序
操作写法说明
追加append(x)加到末尾
插入insert(i, x)插到 i 号位置
删除remove(x) / pop()按值删 / 弹出末尾(有返回值)
修改s[i] = x直接换掉 i 号盒子的内容
排序sort()从小到大排好

三、列表 + 循环:黄金搭档

列表和 for 循环是天生一对——挨个处理一堆数据:

scores = [85, 92, 78, 90, 88]

# 求平均分
total = 0
for s in scores:
    total += s
print(f"平均分:{total / len(scores):.1f}")

# 找出最高分
print(f"最高分:{max(scores)},最低分:{min(scores)}")
💡 max() / min() / sum() 是 Python 送的现成函数:最大值、最小值、求和,处理列表时随手用。

四、元组:锁死的列表

元组示意

元组(tuple)长得像列表,但用圆括号,而且一旦创建就不能改:

point = (3, 5)          # 圆括号:一个坐标点
print(point[0])         # 3:照样能按编号取
# point[0] = 10         # 报错!元组不许修改

# 元组最常见的用途:一次给多个变量赋值
x, y = (3, 5)
name, age = "小明", 16   # 括号都可以省,帅吧
列表 list元组 tuple
括号[] 方括号() 圆括号
能改吗能:增删改都行不能:创建后锁死
用来装会变化的一堆数据固定不变的一组数据(如坐标、日期)

五、动手练一练

练习 1:有一个成绩列表 [78, 92, 85, 100, 67],输出平均分、最高分、最低分,以及高于平均分的有几人。

练习 2:用 input() 让用户输入 5 个同学的名字存进列表,最后倒序输出全班名单。

点击查看参考答案
# 练习1
scores = [78, 92, 85, 100, 67]
avg = sum(scores) / len(scores)
count = 0
for s in scores:
    if s > avg:
        count += 1
print(f"平均分{avg:.1f},最高分{max(scores)},最低分{min(scores)}")
print(f"高于平均分的有{count}人")

# 练习2
names = []
for i in range(5):
    names.append(input(f"输入第{i+1}个名字:"))
names.reverse()
print(names)
🎉 这一课你学会了:列表的创建、编号、增删改查,元组的特点。下一课学习字典与集合——按键找值的"抽屉柜"!
More

相关教程