python实验三、字典和集合 .doc
一、实验目的和要求 (1) 掌握字典的创建方法 (2) 掌握字典元素的访问方法 (3) 掌握字典的基本操作 (4) 掌握集合的创建方法 (5) 掌握集合的基本运算 二、实验题目 1.学生基本信息如下表,请编写程序分别统计男、女生的人数,并查找所有年龄超过18岁的学生的姓名 姓名 性别 年龄 张三 男 19 李四 女 18 王五 男 18 赵六 女 20 徐伟伟 女 19 韩亮亮 女 19 【提示】 (1)信息表中每一行存储的是和姓名有关的个人信息,可以考虑用字典存储。其中姓名作为键,性别和年龄可以以元组的形式作为值。然后通过字典的遍历完成统计和查询。 如dicStus={'张三':('男',19),'李四':('女',18),'王五':('男',18), '赵六':('女',20),'徐伟伟':('女', 19),'韩亮亮':('女',19)} 1)算法分析: 信息表中每一行存储的是和姓名有关的个人信息,可以考虑用字典存储。其中姓名作为键,性别和年龄可以以元组的形式作为值。然后通过字典的遍历完成统计和查询。 2)源程序: 【Python 字典与集合实验详解】 实验目标集中在掌握Python中的两个重要数据结构——字典(Dictionary)和集合(Set)。字典是一种可变容器模型,它以键值对(Key-Value pairs)的形式存储数据,而集合是无序且不重复的元素序列。 **一、字典操作** 1. **创建字典**:字典可以通过大括号{}来创建,或者使用dict()函数。例如: ```python dicStus = {'张三': ('男', 19), '李四': ('女', 18)} ``` 在这个例子中,姓名作为键(key),性别和年龄的元组作为对应的值(value)。 2. **访问字典元素**:通过键来访问字典中的值,例如 `dicStus['张三']` 返回 ('男', 19)。 3. **基本操作**:包括添加元素(`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)) ``` **三、集合操作** 1. **创建集合**:同样可以通过大括号{}或set()函数创建。例如,`s = set(['apple', 'banana', 'orange'])` 创建一个包含水果名的集合。 2. **集合运算**:集合支持并集(`|`)、交集(`&`)、差集(`-`)和对称差集(`^`)等运算。 实验题目中没有直接涉及集合操作,但在实际应用中,集合常用于去重、成员关系判断和集合运算等。 **四、字典应用于文本统计** 对于文本处理,字典同样扮演重要角色。例如,统计文本中每个单词的出现次数,可以先预处理文本,如移除标点符号、转换为小写,然后使用`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}次") ``` 这段代码将统计文本中每个单词的出现次数,并打印出出现次数最多的前5个单词。 通过这个实验,你可以深入理解Python字典和集合的用法,以及它们在实际问题中的应用,这将对你的Python编程技能有很大帮助。
剩余6页未读,继续阅读
- 粉丝: 6
- 资源: 42
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip