返回课程目录

第 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。