第 05 章 组合数据类型
学习目标
- 创建和使用列表、集合、字典。
- 掌握索引、切片及常用操作符、函数和方法。
- 选择合适的组合类型处理一批数据。
- 完成统计、查找和词频统计程序。
1. 列表
scores = [86, 92, 77, 92]
print(scores[0], scores[-1])
print(scores[1:3])
scores.append(100)
scores.insert(1, 88)
print(scores)
列表使用方括号,可以修改。索引越界会触发 IndexError。
常用操作:
scores = [86, 92, 77]
print(len(scores))
print(max(scores), min(scores), sum(scores))
print(scores.count(92))
print(sorted(scores))
append() 在末尾添加元素,pop() 删除并返回元素,remove() 删除第一个匹配值,sort() 直接改变原列表,sorted() 返回新列表。
二维列表通过两个索引访问:
table = [[1, 2], [3, 4], [5, 6]]
print(table[1][0])
print(len(table))
输出:
3
3
2. 集合
集合使用花括号,元素不重复且不记录位置:
letters = {"a", "b", "a"}
letters.add("c")
print(letters)
print({"a", "b"} | {"b", "c"})
print({"a", "b"} & {"b", "c"})
| 表示并集,& 表示交集,- 表示差集。空集合必须写成 set(),因为 {} 表示空字典。
3. 字典
字典保存键值对,键必须唯一且不可变:
student = {"姓名": "李明", "成绩": 92}
student["班级"] = "一班"
student["成绩"] = 95
print(student["姓名"])
print(student.get("电话", "无"))
列表不能作为字典的键,字符串、数字和元组可以。keys()、values() 和 items() 分别获取键、值和键值对。
for key, value in student.items():
print(key, value)
4. 词频统计
text = "python python data"
words = text.split()
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
print(counts)
输出:
{'python': 2, 'data': 1}
本章练习
- 输入三个成绩,保存到列表并输出平均分。
- 用集合去除列表
[1, 2, 2, 3]中的重复值。 - 建立课程字典,修改一门课程的成绩并删除另一门课程。
- 统计一句英文中每个单词出现的次数。
本章小结
- 列表有顺序、可修改,通过索引和切片访问。
- 集合自动去重,适合并集、交集和差集运算。
- 字典通过键访问值,键不能使用列表等可变对象。
get()能在键不存在时返回默认值,避免KeyError。