python字典翻转教学

这篇具有很好参考价值的文章主要介绍了python字典翻转教学。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第1关 创建大学英语四级单词字典

 第2关 合并大学英语四六级词汇字典 

第3关 查单词输出中文释义

第4关 删除字典中特定字母开头的单词

第5关 单词英汉记忆训练


第1关 创建大学英语四级单词字典

本关任务:编写一个能创建大学英语四级单词字典的小程序。

测试输入: 10

预期输出: [('African', 'a.非洲的 n.非洲人'), ('Arabian', 'a.阿拉伯的'), ('Atlantic', 'a.大西洋的 n.大西洋'), ('August', 'n.八月'), ('Australia', 'n.澳大利亚'), ('Australian', 'a.澳大利亚的'), ('B.C.', '(缩)公元前'), ('Bible', 'n.基督教《圣经》'), ('Britain', 'n.不列颠,英国'), ('British', 'a.不列颠的,英联邦的')]

def create_dict(file):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    # 在下面一行补充代码,创建一个空字典
    dic = {}                                                   # 创建空字典
    with open(file, 'r', encoding='utf-8') as data:    # 打开文件,以读模式创建文件对象
        for x in data:                                 # 遍历文件对象
            word, trans = x.strip().split(maxsplit=1)  # 每行根据空格切分为列表,只切分一次,将单词与释义分开
            # 补充程序,列表的首个元素作为字典的键,第二个元素做字典的值,加入字典中,返回这个字典
            dic.update({word:trans})    
        return dic

if __name__ == '__main__':
    filename = '/data/bigfiles/cet4.txt'
    n = int(input())                     # 输入一个正整数
    cet_dict = create_dict(filename)     # 调用函数,返回字典类型数据
    # 在下面补充语句,根据字典的键对字典进行排序,得到排序的列表,输出列表前n项
    print([x for x in sorted(cet_dict.items())][:n])

 第2关 合并大学英语四六级词汇字典 

本关任务:编写一个能将大学英语四级、六级词汇合并为一个字典的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。 cet4.txt cet6.txt

编程要求

根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。输入一个正整数n,输出所创建字典排序后的前n项。

def create_dict(file):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    # 补充你的代码
    dic = {}                                                   # 创建空字典
    with open(file, 'r', encoding='utf-8') as data:    # 打开文件,以读模式创建文件对象
        for x in data:                                 # 遍历文件对象
            word, trans = x.strip().split(maxsplit=1)  # 每行根据空格切分为列表,只切分一次,将单词与释义分开
            dic.update({word:trans})    
        return dic


def merge_dic(file1, file2):
    """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
    # 补充你的代码
    dict1 = create_dict(file1)
    dict2 = create_dict(file2)
    dict3 = dict1 | dict2
    return dict3


def sort_dic(cet_dic, n):
    """根据字典的键对字典进行排序,得到排序的列表,返回列表前n项"""
    # 补充你的代码
    return [x for x in sorted(cet_dict.items())][:n]


if __name__ == '__main__':
    filename1 = '/data/bigfiles/cet4.txt'  # 数据文件名
    filename2 = '/data/bigfiles/cet6.txt'  # 数据文件名
    num = int(input())  # 输入一个正整数
    cet_dict = merge_dic(filename1, filename2)  # 调用函数,返回字典类型数据
    print(sort_dic(cet_dict, num))  # 输出排序后列表前n项
 

第3关 查单词输出中文释义

本关任务:编写一个能查询单词中文释义的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。输入一个单词,查询并输出对应的释义,单词在字典中不存在时,输出'单词不存在'。

def create_dict(file):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    # 补充你的代码
    dic = {}                                                   # 创建空字典
    with open(file, 'r', encoding='utf-8') as data:    # 打开文件,以读模式创建文件对象
        for x in data:                                 # 遍历文件对象
            word, trans = x.strip().split(maxsplit=1)  # 每行根据空格切分为列表,只切分一次,将单词与释义分开
            dic.update({word:trans})    
        return dic


def merge_dic(file1, file2):
    """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
    # 补充你的代码
    dict1 = create_dict(file1)
    dict2 = create_dict(file2)
    dict3 = dict1 | dict2
    return dict3


def translate(cet_dic, word):
    """接收两个参数,第一个是读文件创建的字典,第二个参数为要查询的单词,字符串
    根据文件创建的字典,从中查询单词word,
    如果查询单词存在,元组形式返回词与词的释义;
    如果查询不存在,返回'单词不存在'
    """
    # 补充你的代码
    if word in cet_dic:
        return word,cet_dic[word]
    else:
        return word,'单词不存在'


if __name__ == '__main__':
    filename1 = '/data/bigfiles/cet4.txt'  # 数据文件名
    filename2 = '/data/bigfiles/cet6.txt'  # 数据文件名
    word = input()  # 输入一个单词
    cet_dict = merge_dic(filename1, filename2)  # 调用函数,返回字典类型数据
    result = translate(cet_dict, word)
    print('{}: {}'.format(*result))
 

第4关 删除字典中特定字母开头的单词

本关任务:编写一个能删除字典中特定字母开头的单词的小程序。

小明同学在准备参加大学英语四六级考试,为了督促自己背单词,他决定自己写一个背单词的程序。根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。删除字典中特定字母开头的单词(首字母不区分大小写),输出删除后字典长度。

def create_dict(file):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    # 补充你的代码
    dic = {}                                                   # 创建空字典
    with open(file, 'r', encoding='utf-8') as data:    # 打开文件,以读模式创建文件对象
        for x in data:                                 # 遍历文件对象
            word, trans = x.strip().split(maxsplit=1)  # 每行根据空格切分为列表,只切分一次,将单词与释义分开
            dic.update({word:trans})    
        return dic

def merge_dic(file1, file2):
    """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
    # 补充你的代码
    dict1 = create_dict(file1)
    dict2 = create_dict(file2)
    dict3 = dict1 | dict2
    return dict3


def del_words(cet_dic, letter):
    """删除字典中首字母与参数letter相同的单词,返回删除后的字典"""
    # 补充你的代码
    list1 = [x for x in cet_dic]
    for i in range(len(list1)):
        if list1[i][0].lower() == letter:
            cet_dic.pop(list1[i])
    return cet_dic



if __name__ == '__main__':
    filename1 = '/data/bigfiles/cet4.txt'  # 数据文件名
    filename2 = '/data/bigfiles/cet6.txt'  # 数据文件名
    alphabet = input().lower()             # 输入一个字母
    cet_dict = merge_dic(filename1, filename2)  # 调用函数,返回字典类型数据
    result = del_words(cet_dict, alphabet)  # 删除特定单词后的字典
    print(len(result))                      # 输出字典长度
 

第5关 单词英汉记忆训练

编程要求

根据提示,在右侧编辑器补充代码,读取数据集中的四级单和六级词文件,以单词为键,以中文解释为值,将两个文件中的数据创建为一个字典。用户输入一个字母,用这个字母的ASCII值为随机数种子,随机抽取这个字母开头的单词(首字母不区分大小写)进行记忆训练,用户填写词义,用户输入的词义在释义中存在时认为回答正确,此时输出当前词全部释义;输入错误时,记录该单词信息到错词字典;用户直接输入回车时结束训练,并输出正确率并输出全部出错单词的信息。文章来源地址https://www.toymoban.com/news/detail-458406.html

import random

def create_dict(file):
    """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。
    多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格,
    将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。
    返回字典。
    """
    # 补充你的代码
    dic = {}                                                   # 创建空字典
    with open(file, 'r', encoding='utf-8') as data:    # 打开文件,以读模式创建文件对象
        for x in data:                                 # 遍历文件对象
            word, trans = x.strip().split(maxsplit=1)  # 每行根据空格切分为列表,只切分一次,将单词与释义分开
            # 补充程序,列表的首个元素作为字典的键,第二个元素做字典的值,加入字典中,返回这个字典
            dic.update({word:trans})    
        return dic



def merge_dic(file1, file2):
    """将读取两个文件中获得的字典合并为一个,返回合并后的字典"""
    # 补充你的代码
    dict1 = create_dict(file1)
    dict2 = create_dict(file2)
    dict3 = dict1 | dict2
    return dict3


def training(cet_dic, letter):
    """输入一个字母,返回以这个字母开头的词汇的字典(不区分大小写),用于单词记忆训练"""
    # 补充你的代码
    list1 = [x for x in cet_dic]
    for i in range(len(list1)):
        if list1[i][0].lower() != letter:
            cet_dic.pop(list1[i])
    return cet_dic



def en_to_ch(train_dic):
    """从训练字典中随机抽取以某个字母开头的单词,用户填写词义
    回答正确时,输出当前词全部释义,输入错误时,记录该单词信息,
    直接输入回车时结束输入,训练结束后输出全部出错单词的信息"""
    # 创建空字典,用于容纳答错单词
    dic1 = {}

    
    while True:  # 无限循环用于一次训练记忆多个单词
        word = random.choice(list(train_dic.keys()))   # 从字典的键中随机抽取一个单词
        print(f'请输入单词{word}的中文翻译:')           # 输出提示语句
        answer = input()                               # 输入当前单词的语义
        if not answer:                                 # 直接回车时输入为空,结束循环
            print('训练结束!')
            break
        # 补充你的程序,如果输入在释义中存在,输出完整释义,否则输出'答案错误'并将当前单词加入答错单词字典
        elif answer in train_dic[word]:
            print(f'{word}的释义为:{train_dic[word]}')
        elif answer not in train_dic[word]:
            print('答案错误')
            dic1[word] = train_dic[word]


    print('需要加强记忆的单词:')
    # 补充代码,逐个输出答错字典中的单词和释义
    for i in dic1:
        print(f'{i}:{dic1[i]}')



if __name__ == '__main__':
    filename1 = '/data/bigfiles/cet4.txt'  # 数据文件名
    filename2 = '/data/bigfiles/cet6.txt'  # 数据文件名
    alphabet = input('输入今天训练单词首字母:\n').lower()
    random.seed(ord(alphabet))             # 用当前字典的ASCII值做随机数种子,方便评测
    cet_dict = merge_dic(filename1, filename2)  # 调用函数,返回字典类型数据
    train_dict = training(cet_dict, alphabet)   # 本次训练单词的字典
    en_to_ch(train_dict)                        # 调用函数进行训练
 

到了这里,关于python字典翻转教学的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • anaconda在新的conda环境创建与打开jupyter notebook,在新的文件目录下打开jupyter notebook(有视频教学)

    目录 视频链接如下: anaconda 1.创建新的conda环境; 2.在新的conda环境打开jupyter notebook; 3.在新的文件目录下打开jupyter notebook; 详细步骤: 本文也是根据该视频的教学学习做的笔记,希望帮助到更多人。 https://www.bilibili.com/video/BV1CU4y1v7PV/?spm_id_from=333.788.top_right_bar_window_histor

    2024年02月01日
    浏览(72)
  • 列表类型翻转教学

    任务描述 本关任务:编写一个能将用户输入的数据加入到列表中的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.创建空列表 2.向列表中增加数据 任务描述 本关任务:编写一个能对列表中的数据进行统计分析的小程序。 相关知识 为了完成本关任务,你需要掌握:

    2024年02月02日
    浏览(38)
  • 数值类型翻转教学设计

    任务描述 本关任务:编写一个能计算正方形面积的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.输入函数 2.字符串转整数 3.数值运算 4.输出函数 任务描述 本关任务:编写一个能计算正方形面积的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.输入函数 2

    2024年02月12日
    浏览(54)
  • 流程控制翻转教学设计

    任务描述 本关任务:编写一个能在同一行输出小于n的非负整数的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.range 2.遍历输出range产生的整数 range range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。 range 参数必须为整数,如果省略 step 参数,

    2024年02月16日
    浏览(41)
  • 字符串翻转教学设计

    任务描述 本关任务:编写一个能统计“唐诗三百首”中诗人出现次数的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.序列元素计数方法 任务描述 本关任务:编写一个能统计文件里去除标点后的汉字字数的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.字符

    2024年02月04日
    浏览(28)
  • 【Python入门【推导式创建序列、字典推导式、集合推导式】(九)

    👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的

    2024年02月15日
    浏览(66)
  • 《MidJourney零基础教学:在线提示词查询字典》:为你的创作之路增添更多的惊喜和乐趣

    作为一个创作者,我们时常会遇到灵感枯竭的情况。在这种时候,《MidJourney零基础教学:在线提示词查询字典》就像一个魔法宝盒,可以给我们带来更多的惊喜和乐趣!无论你是小白还是老手,在创作中使用《MidJourney零基础教学:在线提示词查询字典》都能快速提升你的表

    2024年02月17日
    浏览(52)
  • 用ChatGPT教学、科研!大学与OpenAI合作

    亚利桑那州立大学(简称“ASU”)在官网宣布与OpenAI达成技术合作。从2024年2月份开始,为所有学生提供ChatGPT企业版访问权限,主要用于学习、课程作业和学术研究等。 为了帮助学生更好地学习ChatGPT和大语言模型产品,ASU开设了一门名叫“Prompt engineering”(提示工程)的课

    2024年01月23日
    浏览(38)
  • Python+requests+pytest+allure封装接口自动化1-项目结构目录创建,requests库封装

    api: 这是一个package,用来各个接口的类封装,按照你的业务可以将其分为多个package common: 这是一个package,用来封装底层公共方法,比如requests库封装、文件操作封 装、加解密封装、redis封装、数据库封装、随机数据封装、日志封装 testcases: 这是一个package,用来编写封装我们

    2024年02月12日
    浏览(65)
  • 创建一个具有背景轮播和3D卡片翻转效果的个人名片网页

    目录 项目展示 图片展示 前言 项目目标 项目目标 步骤 3:CSS 样式 步骤 4:JavaScript 动画 项目源码 知识点介绍 (大佬请绕道) HTML 结构的构建 2. CSS 样式的设计 3. JavaScript 动画的实现 4. 背景图轮播的逻辑 5. CSS 3D变换的使用 结语 项目展示 点击下面链接(第一次打开可能会有

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包