本周学习了元组、集合,列表 / 字符串 / 元组 / 集合之间的互相转换,以及函数和文件
1. 元组(tuple)
有序、不可变,用 ()。能索引切片,但不能增删改。
t = (1, 2, 3)
t[0] = 10 # 报错
坑:单元素元组要加逗号 (1,),(1) 是整数。元组可做字典键。
2. 集合(set)
无序、不重复,用 {},自动去重。
s = {1, 1, 2} # {1, 2}
s.add(3)
s.remove(1) # 不存在会报错;discard() 不报错
- 交集 &、并集 |、差集 -;
- 坑:空集合要写 set(),{} 是空字典。
3. 类型转换
转换 | 写法 |
字符串→列表 | "abc".split(",") 按分隔符拆 |
列表→字符串 | ",".join(列表)(元素必须是字符串) |
元组↔列表 | list((1,2)) / tuple([1,2]) |
任意→集合 | set(...)去重且顺序不保证 |
坑:split 拆、join 拼,方向别记反;元组想修改先转列表。
4. 函数
def add(a, b=10): # 默认参数放最后
return a + b
- 没写 return 就返回 None,return 后面的代码不执行;
- 不定长参数:*args 收元组,**kwargs 收字典;
- 函数内变量是局部的,改全局变量要用 global。
5. 文件操作
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
- 模式:r 读、w 写(会清空)、a 追加;
- 读:read() 全部 / readlines() 列表 / for line in f: 逐行;
- 坑:忘 close 可能没写进去,用 with 自动关闭;中文读写必须 encoding="utf-8"。
6. 易错点速记
- (1,) 才是元组,(1) 不是;
- 空集合 set(),{} 是空字典;
- 集合无序会去重,转回来顺序不保证;
- split 拆、join 拼;
- 函数没 return 返回 None;
- 写文件忘关闭内容可能丢失,中文忘 utf-8 会乱码。
7. 小结
元组 = 只读列表;集合 = 去重工具;转换记住 split 拆、join 拼、set 去重;函数封装复用、文件用 with 管理。