跳转至

六、数据操作进阶:一行顶十行

第 30~34 课

到这块语法主干已经学完了,剩下的都是「让代码更短、更清楚」的技巧。学完最大的感受是:原来要写六行的事,一行就能干完。

第 30 课 列表推导式

以前批量算年租得这么写:

nianzu = []
for r in rents:
    nianzu.append(r * 12)

推导式一行搞定:

nianzu = [r * 12 for r in rents]

语法 [表达式 for 变量 in 容器],读作「对于 rents 里每个 r,算出 r × 12,装进新列表」。

还能加条件过滤:

gao = [r for r in rents if r > 5000]   # 只留大于 5000 的

比喻:像一台复印机——给一张清单,说「每项都 ×12」,它一次性处理成新清单。

第 31 课 解包

把一组值一次拆开,装进多个变量:

a, b = 4500, 5200        # 一次赋值两个
a, b = b, a              # 交换两个值,不用中间变量

最实用的场景是遍历字典:

for name, rent in rents.items():
    print(name, "的月租是", rent)

items() 给出的一对一对,直接被 name, rent 拆开——名字进 name、金额进 rent,一行拿齐。

第 32 课 常用内置函数

Python 自带的、不用导入直接能用的小工具:

函数 作用 例子
sum() 求和 sum([4500, 5200]) → 9700
max() 最大值 max(rents)
min() 最小值 min(rents)
sorted() 排序(返回新列表) sorted(rents)
len() 长度 len(rents)

求总和、找最高最低,一行搞定——简直是为对账准备的。

enumerate() 也常用,遍历时给每个元素配个序号:for i, r in enumerate(rents):。)

第 33 课 f-string:把变量嵌进文字

以前拼句子要 + 还要记得 str() 转数字,啰嗦:

print(tenant + "您好,本月租金" + str(rent) + "元,请尽快缴纳。")

f-string 直接把变量嵌进去:

print(f"{tenant}您好,本月租金{rent}元,请尽快缴纳。")

要点:字符串开头加 f,变量用 {花括号} 包起来,数字不用再转文字。像一份「带空格的合同模板」,{} 是空格,Python 自动填。

批量生成催缴账单:

for name, rent in rents.items():
    print(f"{name}您好,本月租金{rent}元,请尽快缴纳。")

第 34 课 数据清洗

真实数据往往是「脏」的——带多余空格、大小写乱。两个清洗工具:

工具 作用
.strip() 去掉首尾空格
.lower() / .upper() 统一小写 / 大写

配合推导式,一行洗一整批:

clean = [n.strip() for n in names]
clean2 = [x.strip().lower() for x in raw]

这一步看着不起眼,但实际干活时最先用上——从表格导出来的数据,十有八九带空格。