
Python 实验 3:字典与集合 .doc
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOC
简介:
一、实验目的和要求:
(1)熟悉字典的创建方法
(2)掌握字典中元素的访问方式
(3)了解并应用字典的基本操作技术
(4)理解集合的相关知识与操作方法
(5)掌握集合的基本运算规则
二、实验题目:
根据以下学生信息表,完成统计和查询任务:
| 姓名 | 性别 | 年龄 |
|------|-------|------|
| 张三 | 男 | 19 |
| 李四 | 女 | 18 |
| 王五 | 男 | 18 |
| 赵六 | 女 | 20 |
| 徐伟伟|女 |19 |
| 韩亮亮|女 |19 |
要求:
(1)信息表中每一行存储的是与姓名相关的个人信息,建议采用字典数据结构进行存储。其中,将姓名字段作为键值,对应的学生信息包括性别和年龄,并以元组形式表示。
例如:dicStus = {
张三: (男, 19),
李四: (女, 18),
王五: (男, 18),
赵六: (女,20 ),
徐伟伟:(女 ,19 ),
韩亮亮:(女 ,19 )
}
(2)算法分析:
信息表中每一行存储的是与姓名相关的个人信息,建议采用字典数据结构进行存储。其中,将姓名字段作为键值,对应的学生信息包括性别和年龄,并以元组形式表示。通过字典的遍历操作实现统计男生、女生的人数以及查找所有年龄大于18岁的学生姓名。
(3)源程序:略
Python 字典与集合实验详解
Python 字典与集合实验详解
深入解析Python字典与集合:理论与实践分析实验目标聚焦于掌握Python核心知识模块——字典(Dict)和集合(Set)。其本质是理解数据存储的基本方式,其中字典以其结构化方式组织信息,而集合则作为一种基于属性值的唯一性数据容器,其元素之间不具备顺序关联,并不允许存在重复项。该部分作为字典操作的基础结构进行处理,主要用于存储和检索数据信息。其核心功能是通过键值对的形式实现快速查找和更新操作流程。在实际应用中,字典操作能够有效提升数据管理的效率,并为后续的数据分析提供可靠的数据基础。创建字典可以通过花括号{}构造字典实例,也可以借助内置的dict函数生成。比如,字典可表示为dicStus = {张三: (男性, 19), 李四: (女性, 18)}。其中,键字段代表人物姓名,值部分包含其性别与年龄信息。获取字典中的元素信息:通过键值对的形式调用对应的函数或方法,例如在 `dicStus[张三]` 中会返回性别为男性和年龄19岁。基本操作:包括新增记录(`dicStus[新学生] = (未知, 20)`)、删除记录(`del dicStus[张三]`)、修改信息(`dicStus[李四] = (女, 19)`)。在实验题目中,在遍历字典的过程中,记录男女生人数并筛选出年龄超过18岁的学生。其核心在于使用`items()`方法,该方法返回字典中的所有键值对。```python
nv = 0 # 女生人数
nan = 0 # 男生人数
list_name = [] # 年龄超过18岁的学生列表
for key, value in dicStus.items():
if value[0] == 女:
nv += 1
elif value[0] == 男:
nan += 1
if value[1] > 18:
list_name.append(key)
print( 学 生 中 女 生 共 有 {} 名 , 男 生 共 有 {} 名 n 其 中 年 龄 超 过 18 随 的 学 生 有 :n{}.format(nv, nan, list_name))
```三、集合操作
**建立集合**:同样地,我们也可以通过使用{}符号或者set()函数来构造一个集合。例如,我们可以编写如下的代码:$s = \{\text{苹果}, \text{香蕉}, \text{橙子}\}$ 来构造一个仅包含水果名称的集合。
该功能涵盖集合运算中的并集、交集、差集以及对称差集等基本操作。具体而言,支持使用竖线符号`|`表示并集运算,圆点符号`&`代表交集运算,短横线符号`-`对应差集运算,而异或符号`^`则用于实现对称差集运算。在实验课题设置方面,并未对集合操作进行直接的拓展。然而,在各种应用场景下被广泛应用的数据处理系统中,集合运算常用于实现数据去重、判断元素是否存在以及执行各类集合运算等基础功能。四、词典被应用于文本统计分析在进行文本处理时,字典也发挥着重要作用。如,在计算每个词频时,先需要对文本进行预处理,包括去除标点符号和将其转为小写。接着,可以通过调用split()方法将文本分割成一个单词列表。最后,遍历这个单词列表,并利用字典来记录每个词的出现频率。```python
s = … # 文本内容
# 预处理
s = s.lower()
s = s.translate(str.maketrans(, , string.punctuation))
# 统计单词
word_dict = {}
words = s.split()
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
# 输出前5个出现次数最多的单词
top_5_words = sorted(word_dict.items(), key=lambda x: x[1], reverse=True)[:5]
for word, count in top_5_words:
print(f{word}: {count}次)
```该代码通过计算在文本中的每一个单词的出现频率,并输出五个最频繁出现的单词。参与该实验后,本实验有助于加深你对Python字典和集合用法的理解,并掌握这些数据结构的实际运用方法,这将显著提升你的Python编程能力。
全部评论 (0)


