目录

第1关:统计小说单词数量

第2关 统计小说中不重复单词数量

第3关 列表去掉重复元素后保持各元素出现的先后次序不变

第4关 输出两本小说中共存的单词数量

第5关 输出两本小说中出现的所有单词数量

第6关 统计仅在第一本小说中出现的单词数量

第7关 统计未同时在两本小说中出现的单词数量


第1关:统计小说单词数量

本关任务:编写一个统计英文小说中单词数量的小程序。

测试输入: The Old Man and the Sea.txt

预期输出: 27154

import stringdef file_to_str(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写,返回字符串"""# 补充你的代码with open(file, 'r', encoding='utf-8') as f:  # 创建文件对象txt = f.read()  # 读取文件为一个字符串return txt.lower()   # 返回字符串,其中字母全部转为小写def file_to_lst(txt):"""替换掉字符串txt中的符号和数字,根据空格切分为列表,返回列表"""# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_ls                # 返回列表if __name__ == '__main__':filename = input()                   # 输入文件名path = '/data/bigfiles/'             # 文件存放路径text = file_to_str(path + filename)  # 读文件返回字符串words_lst = file_to_lst(text)        # 字符串切分为列表print(len(words_lst))                # 输出列表长度

第2关 统计小说中不重复单词数量

本关任务:编写一个统计英文小说中不重复单词数量的小程序。

测试输入: The Old Man and the Sea.txt

预期输出: 2557

import stringdef file_to_str(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写"""# 补充你的代码with open(file, 'r', encoding='utf-8') as f:  # 创建文件对象txt = f.read()  # 读取文件为一个字符串return txt.lower()   # 返回字符串,其中字母全部转为小写def file_to_lst(txt):"""将文件名变量file指向的文件读为字符串,全部字母转为小写,替换掉其中的符号和数字,根据空格切分为列表,返回列表"""# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_ls                # 返回列表def no_repeat(words_ls):"""接收列表为参数,去除里面的重复单词,保持原来单词出现的顺序,返回列表"""# 补充你的代码words_no_repeat = set(words_ls)  # 去掉重复单词,返回值为集合return words_no_repeat  # 返回集合if __name__ == '__main__':filename = input()             # 输入文件名path = '/data/bigfiles/'         # 文件存放路径text = file_to_str(path + filename)  # 读文件返回字符串words_lst = file_to_lst(text)      # 字符串切分为列表print(len(no_repeat(words_lst)))    # 输出集合长度

第3关 列表去掉重复元素后保持各元素出现的先后次序不变

本关任务:编写一个能将小说中重复单词去掉再按出现次序输出的小程序。

测试输入: The Old Man and the Sea.txt 10

预期输出: ['a', 'distributed', 'proofreaders', 'canada', 'ebook', 'this', 'is', 'made', 'available', 'at']

import stringdef file_to_str(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写"""# 补充你的代码with open(file, 'r', encoding='utf-8') as f:  # 创建文件对象txt = f.read()  # 读取文件为一个字符串return txt.lower()   # 返回字符串,其中字母全部转为小写def file_to_lst(txt):"""替换掉字符串中的符号和数字,根据空白字符切分为列表,返回列表"""# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_ls                # 返回列表def no_repeat(words_ls):"""接收列表为参数,去除里面的重复单词,保持原来单词出现的顺序,返回列表"""# 补充你的代码words_no_repeat = list(set(words_ls))  # 去掉重复单词,返回值为列表return sorted(words_no_repeat, key=lambda x: words_ls.index(x))  # 返回列表 根据元素在列表中出现的序号排序if __name__ == '__main__':filename = input()             # 输入文件名n = int(input())               # 输入一个正整数npath = '/data/bigfiles/'         # 文件存放路径text = file_to_str(path + filename)  # 读文件返回字符串words_lst = file_to_lst(text)      # 字符串切分为列表print(no_repeat(words_lst)[:n])    # 输出不重复的前n个单词的子列表

第4关 输出两本小说中共存的单词数量

本关任务:编写一个统计两本小说中共存的单词数量的小程序。

测试输入: The Old Man and the Sea.txt The Torrents of Spring.txt

预期输出: 1127

import stringdef file_to_set(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写。替换掉字符串中的符号,根据空白字符切分为列表,转为集合类型。"""path = '/data/bigfiles/'       # 文件路径with open(path+file, 'r', encoding='utf-8') as fr:  # 创建文件对象txt = fr.read().lower()    # 读取文件为一个字符串,其中字母全部转为小写# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_lsdef words_both(file1, file2):"""接收两个文件名为参数,返回两个文件中共同存在的单词,相同单词只计算一次"""# 补充你的代码file1 = {i for i in file_to_set(file1)}file2 = {i for i in file_to_set(file2)}file3 = file1 & file2return file3if __name__ == '__main__':filename1 = input()  # 输入文件名filename2 = input()  # 输入文件名print(len(words_both(filename1, filename2)))

第5关 输出两本小说中出现的所有单词数量

本关任务:编写一个统计两本小说中出现的所有单词数量的小程序。

测试输入: The Old Man and the Sea.txt The Torrents of Spring.txt

预期输出: 4723

import stringdef file_to_set(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写。替换掉字符串中的符号,根据空白字符切分为列表,转为集合类型。"""path = '/data/bigfiles/'       # 文件路径with open(path+file, 'r', encoding='utf-8') as fr:  # 创建文件对象txt = fr.read().lower()    # 读取文件为一个字符串,其中字母全部转为小写# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_ls                # 返回列表def words_all(file1, file2):"""接收两个文件名为参数,返回两个文件中出现的所有单词,相同单词只计算一次"""# 补充你的代码file1 = {i for i in file_to_set(file1)}file2 = {i for i in file_to_set(file2)}file3 = file1 | file2return file3if __name__ == '__main__':filename1 = input()  # 输入文件名filename2 = input()  # 输入文件名print(len(words_all(filename1, filename2)))

第6关 统计仅在第一本小说中出现的单词数量

本关任务:编写一个统计仅在第一本小说中出现的单词数量的小程序。

测试输入: The Old Man and the Sea.txt The Torrents of Spring.txt

预期输出: 1429

import stringdef file_to_set(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写。替换掉字符串中的符号,根据空白字符切分为列表,转为集合类型。"""path = '/data/bigfiles/'       # 文件路径with open(path+file, 'r', encoding='utf-8') as fr:  # 创建文件对象txt = fr.read().lower()    # 读取文件为一个字符串,其中字母全部转为小写# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_lsdef only_in_first(file1, file2):"""接收两个文件名为参数,返回仅在第一本小说中出现且在第二本小说中未出现的单词集合,相同单词只计算一次"""# 补充你的代码file1 = {i for i in file_to_set(file1)}file2 = {i for i in file_to_set(file2)}file3 = file1 - file2return file3if __name__ == '__main__':filename1 = input()  # 输入文件名filename2 = input()  # 输入文件名print(len(only_in_first(filename1, filename2)))

第7关 统计未同时在两本小说中出现的单词数量

本关任务:编写一个统计两本小说中出现的单词中未同时在两本书中出现的单词数量的小程序。

测试输入: The Old Man and the Sea.txt The Torrents of Spring.txt

预期输出: 3596

import stringdef file_to_set(file):"""将文件名变量file指向的文件读为字符串,全部字母转为小写。替换掉字符串中的符号,根据空白字符切分为列表,转为集合类型。"""path = '/data/bigfiles/'       # 文件路径with open(path+file, 'r', encoding='utf-8') as fr:  # 创建文件对象txt = fr.read().lower()    # 读取文件为一个字符串,其中字母全部转为小写# 补充你的代码for c in string.punctuation:   # 遍历符号集txt = txt.replace(c, ' ')  # 将全部符号都替换为空格words_ls = txt.split()         # 根据空白字符切分为列表return words_lsdef only_in_one(file1, file2):"""接收两个文件名为参数,返回仅在一个小说中存在,不在两个文件中共同存在的单词,相同单词只计算一次"""# 补充你的代码file1 = {i for i in file_to_set(file1)}file2 = {i for i in file_to_set(file2)}file3 = file1 ^ file2return file3if __name__ == '__main__':filename1 = input()  # 输入文件名filename2 = input()  # 输入文件名print(len(only_in_one(filename1, filename2)))

python集合翻转教学相关推荐

  1. python字典翻转教学

    目录 第1关 创建大学英语四级单词字典 第2关 合并大学英语四六级词汇字典 第3关 查单词输出中文释义 第4关 删除字典中特定字母开头的单词 第5关 单词英汉记忆训练 第1关 创建大学英语四级单词字典 ...

  2. 一文掌握Python集合的语法与应用

    6.1  基本概念 Python语言中的集合是无序的.可变的容器类对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复. 集合中只能包含数字.字符串.元组 ...

  3. python集合(set)+常见方法+交叉并补

    python集合(set)+常见方法+交叉并补 集合的定义 定义:由不同元素组成的集合,集合是一组无序排列 可hash值,可作为字典的key. 特性:集合的目的是将不同的值存放在一起,不同的集合间用来 ...

  4. Python集合之set()使用方法详解

    set是一个无序且不重复的元素集合,它有可变集合(set())和不可变集合(frozenset)两种,可以对set()集合进行创建.添加.删除.交集.并集和差集的操作,非常实用,以下是具体用法: 一. ...

  5. excel调用python编程-使用python集合进行EXCEL数据分析

    使用python集合进行EXCEL数据分析 标准库 Python真正精彩的方面之一是它具有非常丰富的模块标准库 ,无需安装第三方模块即可进行一些复杂的编程. 如果您在系统上有效安装了python,则可 ...

  6. python在中小学教学中的应用-中小学Python教学的几点建议

    苗海荣 [内容摘要]随着信息化的不断深入和人工智能的兴起,Python逐渐取代其它编程语言走进中小学教材.如何利用这一工具锻炼学生的逻辑思维.增强信息技术意识和数据处理能力成为当前信息技术老师面临的一 ...

  7. python集合的并集、交集_Python 集合set()添加删除、交集、并集、集合操作详解

    1.在Python中set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的 ...

  8. 高中生学python培养思维能力_基于培养思维能力的Python语言程序设计教学

    教育信息化 数码世界 P .203 基于培养思维能力的 Python 语言程序设计教学 周蓉   东莞市商业学校 摘要 :Python 语言有着简洁,高效和生态的三大特点,在中职学校引入计算机程序设计 ...

  9. python空集_玩转Python集合,这一篇就够了!

    原标题:玩转Python集合,这一篇就够了! 点上方蓝色" 菜鸟学Python",选" 星标"公众号 重磅干货,第一时间送到 选自DataCamp, 作者:Mi ...

最新文章

  1. 1.15 Java冒泡排序法
  2. mysql高可用最佳实践_mysql高可用方案
  3. 如何修改oracle字段类型
  4. 解决idea一直updating index
  5. 奇安信代码安全实验室帮助微软修复两个“重要”漏洞,获官方致谢
  6. SpringMVC集成shrio框架
  7. Topaz Mask AI for mac(人工智能AI抠图软件) 最新版
  8. Microsoft Word For Mac 分节符
  9. windows下如何安装tomcat并设置开机自启
  10. 不同参数对分类模型性能影响记录
  11. ssh+Google双重认证
  12. 写一个求平方根的函数求一个整数的平方根因为函数类型是整形所以平方根的结果是整数,例如5,的平方根是2,而不是2.3...
  13. 12-16 云计算平台基础架构
  14. 微信小程序| 做一款可以计算亲戚关系的计算器
  15. windows计划任务定时任务
  16. Incorrect string value: '\xE7\xBB\xA0\xEF\xBC\x84...' for column 'name_zh' at row 1
  17. 什么样的人当不好程序员?
  18. 单片机方案|口袋秤芯片方案
  19. 凝固永恒瞬间的艺术 纪实摄影到底怎么拍
  20. 4.6. 个人防火墙

热门文章

  1. 2021年中职组网络安全山东省赛“正式” 赛卷
  2. python编程(Kivy 安装及使用教程)
  3. Qualifying source code on HP-UX(chatr)
  4. 622. 设计循环队列
  5. 一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】
  6. 国家哀悼日,所有网页的主题色都变成灰色是怎么做到的?
  7. php怎么切取部分歌曲,什么软件能剪切歌曲 怎么剪切歌曲的一部分
  8. 刷墙机器人将导致40万美国人失业
  9. java 引用Pushy 实现Apns 完成ios 推送
  10. python 基准测试(cProfile \ kcachegrind \ line_profiler \ memory_profiler)