python字典翻轉(zhuǎn)的實(shí)現(xiàn)
第1關(guān) 創(chuàng)建大學(xué)英語(yǔ)四級(jí)單詞字典
本關(guān)任務(wù):編寫一個(gè)能創(chuàng)建大學(xué)英語(yǔ)四級(jí)單詞字典的小程序。
測(cè)試輸入: 10
預(yù)期輸出: [('African', 'a.非洲的 n.非洲人'), ('Arabian', 'a.阿拉伯的'), ('Atlantic', 'a.大西洋的 n.大西洋'), ('August', 'n.八月'), ('Australia', 'n.澳大利亞'), ('Australian', 'a.澳大利亞的'), ('B.C.', '(縮)公元前'), ('Bible', 'n.基督教《圣經(jīng)》'), ('Britain', 'n.不列顛,英國(guó)'), ('British', 'a.不列顛的,英聯(lián)邦的')]
def create_dict(file): """接收表示文件名的字符串參數(shù),讀文件中的單詞及釋義,以單詞為鍵,其他部分為值創(chuàng)建字典。 多個(gè)釋義間可能是逗號(hào)或空格分隔,但單詞與第一個(gè)釋義間至少有一個(gè)空格, 將文件每一行根據(jù)空格切分一次,切分結(jié)果分別作為鍵和值創(chuàng)新字典。 返回字典。 """ # 在下面一行補(bǔ)充代碼,創(chuàng)建一個(gè)空字典 dic = {} # 創(chuàng)建空字典 with open(file, 'r', encoding='utf-8') as data: # 打開文件,以讀模式創(chuàng)建文件對(duì)象 for x in data: # 遍歷文件對(duì)象 word, trans = x.strip().split(maxsplit=1) # 每行根據(jù)空格切分為列表,只切分一次,將單詞與釋義分開 # 補(bǔ)充程序,列表的首個(gè)元素作為字典的鍵,第二個(gè)元素做字典的值,加入字典中,返回這個(gè)字典 dic.update({word:trans}) return dic if __name__ == '__main__': filename = '/data/bigfiles/cet4.txt' n = int(input()) # 輸入一個(gè)正整數(shù) cet_dict = create_dict(filename) # 調(diào)用函數(shù),返回字典類型數(shù)據(jù) # 在下面補(bǔ)充語(yǔ)句,根據(jù)字典的鍵對(duì)字典進(jìn)行排序,得到排序的列表,輸出列表前n項(xiàng) print([x for x in sorted(cet_dict.items())][:n])
第2關(guān) 合并大學(xué)英語(yǔ)四六級(jí)詞匯字典
本關(guān)任務(wù):編寫一個(gè)能將大學(xué)英語(yǔ)四級(jí)、六級(jí)詞匯合并為一個(gè)字典的小程序。
小明同學(xué)在準(zhǔn)備參加大學(xué)英語(yǔ)四六級(jí)考試,為了督促自己背單詞,他決定自己寫一個(gè)背單詞的程序。 cet4.txt cet6.txt
編程要求
根據(jù)提示,在右側(cè)編輯器補(bǔ)充代碼,讀取數(shù)據(jù)集中的四級(jí)單和六級(jí)詞文件,以單詞為鍵,以中文解釋為值,將兩個(gè)文件中的數(shù)據(jù)創(chuàng)建為一個(gè)字典。輸入一個(gè)正整數(shù)n,輸出所創(chuàng)建字典排序后的前n項(xiàng)。
def create_dict(file): """接收表示文件名的字符串參數(shù),讀文件中的單詞及釋義,以單詞為鍵,其他部分為值創(chuàng)建字典。 多個(gè)釋義間可能是逗號(hào)或空格分隔,但單詞與第一個(gè)釋義間至少有一個(gè)空格, 將文件每一行根據(jù)空格切分一次,切分結(jié)果分別作為鍵和值創(chuàng)新字典。 返回字典。 """ # 補(bǔ)充你的代碼 dic = {} # 創(chuàng)建空字典 with open(file, 'r', encoding='utf-8') as data: # 打開文件,以讀模式創(chuàng)建文件對(duì)象 for x in data: # 遍歷文件對(duì)象 word, trans = x.strip().split(maxsplit=1) # 每行根據(jù)空格切分為列表,只切分一次,將單詞與釋義分開 dic.update({word:trans}) return dic def merge_dic(file1, file2): """將讀取兩個(gè)文件中獲得的字典合并為一個(gè),返回合并后的字典""" # 補(bǔ)充你的代碼 dict1 = create_dict(file1) dict2 = create_dict(file2) dict3 = dict1 | dict2 return dict3 def sort_dic(cet_dic, n): """根據(jù)字典的鍵對(duì)字典進(jìn)行排序,得到排序的列表,返回列表前n項(xiàng)""" # 補(bǔ)充你的代碼 return [x for x in sorted(cet_dict.items())][:n] if __name__ == '__main__': filename1 = '/data/bigfiles/cet4.txt' # 數(shù)據(jù)文件名 filename2 = '/data/bigfiles/cet6.txt' # 數(shù)據(jù)文件名 num = int(input()) # 輸入一個(gè)正整數(shù) cet_dict = merge_dic(filename1, filename2) # 調(diào)用函數(shù),返回字典類型數(shù)據(jù) print(sort_dic(cet_dict, num)) # 輸出排序后列表前n項(xiàng)
第3關(guān) 查單詞輸出中文釋義
本關(guān)任務(wù):編寫一個(gè)能查詢單詞中文釋義的小程序。
小明同學(xué)在準(zhǔn)備參加大學(xué)英語(yǔ)四六級(jí)考試,為了督促自己背單詞,他決定自己寫一個(gè)背單詞的程序。根據(jù)提示,在右側(cè)編輯器補(bǔ)充代碼,讀取數(shù)據(jù)集中的四級(jí)單和六級(jí)詞文件,以單詞為鍵,以中文解釋為值,將兩個(gè)文件中的數(shù)據(jù)創(chuàng)建為一個(gè)字典。輸入一個(gè)單詞,查詢并輸出對(duì)應(yīng)的釋義,單詞在字典中不存在時(shí),輸出'單詞不存在'。
def create_dict(file): """接收表示文件名的字符串參數(shù),讀文件中的單詞及釋義,以單詞為鍵,其他部分為值創(chuàng)建字典。 多個(gè)釋義間可能是逗號(hào)或空格分隔,但單詞與第一個(gè)釋義間至少有一個(gè)空格, 將文件每一行根據(jù)空格切分一次,切分結(jié)果分別作為鍵和值創(chuàng)新字典。 返回字典。 """ # 補(bǔ)充你的代碼 dic = {} # 創(chuàng)建空字典 with open(file, 'r', encoding='utf-8') as data: # 打開文件,以讀模式創(chuàng)建文件對(duì)象 for x in data: # 遍歷文件對(duì)象 word, trans = x.strip().split(maxsplit=1) # 每行根據(jù)空格切分為列表,只切分一次,將單詞與釋義分開 dic.update({word:trans}) return dic def merge_dic(file1, file2): """將讀取兩個(gè)文件中獲得的字典合并為一個(gè),返回合并后的字典""" # 補(bǔ)充你的代碼 dict1 = create_dict(file1) dict2 = create_dict(file2) dict3 = dict1 | dict2 return dict3 def translate(cet_dic, word): """接收兩個(gè)參數(shù),第一個(gè)是讀文件創(chuàng)建的字典,第二個(gè)參數(shù)為要查詢的單詞,字符串 根據(jù)文件創(chuàng)建的字典,從中查詢單詞word, 如果查詢單詞存在,元組形式返回詞與詞的釋義; 如果查詢不存在,返回'單詞不存在' """ # 補(bǔ)充你的代碼 if word in cet_dic: return word,cet_dic[word] else: return word,'單詞不存在' if __name__ == '__main__': filename1 = '/data/bigfiles/cet4.txt' # 數(shù)據(jù)文件名 filename2 = '/data/bigfiles/cet6.txt' # 數(shù)據(jù)文件名 word = input() # 輸入一個(gè)單詞 cet_dict = merge_dic(filename1, filename2) # 調(diào)用函數(shù),返回字典類型數(shù)據(jù) result = translate(cet_dict, word) print('{}: {}'.format(*result))
第4關(guān) 刪除字典中特定字母開頭的單詞
本關(guān)任務(wù):編寫一個(gè)能刪除字典中特定字母開頭的單詞的小程序。
小明同學(xué)在準(zhǔn)備參加大學(xué)英語(yǔ)四六級(jí)考試,為了督促自己背單詞,他決定自己寫一個(gè)背單詞的程序。根據(jù)提示,在右側(cè)編輯器補(bǔ)充代碼,讀取數(shù)據(jù)集中的四級(jí)單和六級(jí)詞文件,以單詞為鍵,以中文解釋為值,將兩個(gè)文件中的數(shù)據(jù)創(chuàng)建為一個(gè)字典。刪除字典中特定字母開頭的單詞(首字母不區(qū)分大小寫),輸出刪除后字典長(zhǎng)度。
def create_dict(file): """接收表示文件名的字符串參數(shù),讀文件中的單詞及釋義,以單詞為鍵,其他部分為值創(chuàng)建字典。 多個(gè)釋義間可能是逗號(hào)或空格分隔,但單詞與第一個(gè)釋義間至少有一個(gè)空格, 將文件每一行根據(jù)空格切分一次,切分結(jié)果分別作為鍵和值創(chuàng)新字典。 返回字典。 """ # 補(bǔ)充你的代碼 dic = {} # 創(chuàng)建空字典 with open(file, 'r', encoding='utf-8') as data: # 打開文件,以讀模式創(chuàng)建文件對(duì)象 for x in data: # 遍歷文件對(duì)象 word, trans = x.strip().split(maxsplit=1) # 每行根據(jù)空格切分為列表,只切分一次,將單詞與釋義分開 dic.update({word:trans}) return dic def merge_dic(file1, file2): """將讀取兩個(gè)文件中獲得的字典合并為一個(gè),返回合并后的字典""" # 補(bǔ)充你的代碼 dict1 = create_dict(file1) dict2 = create_dict(file2) dict3 = dict1 | dict2 return dict3 def del_words(cet_dic, letter): """刪除字典中首字母與參數(shù)letter相同的單詞,返回刪除后的字典""" # 補(bǔ)充你的代碼 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' # 數(shù)據(jù)文件名 filename2 = '/data/bigfiles/cet6.txt' # 數(shù)據(jù)文件名 alphabet = input().lower() # 輸入一個(gè)字母 cet_dict = merge_dic(filename1, filename2) # 調(diào)用函數(shù),返回字典類型數(shù)據(jù) result = del_words(cet_dict, alphabet) # 刪除特定單詞后的字典 print(len(result)) # 輸出字典長(zhǎng)度
第5關(guān) 單詞英漢記憶訓(xùn)練
編程要求
根據(jù)提示,在右側(cè)編輯器補(bǔ)充代碼,讀取數(shù)據(jù)集中的四級(jí)單和六級(jí)詞文件,以單詞為鍵,以中文解釋為值,將兩個(gè)文件中的數(shù)據(jù)創(chuàng)建為一個(gè)字典。用戶輸入一個(gè)字母,用這個(gè)字母的ASCII值為隨機(jī)數(shù)種子,隨機(jī)抽取這個(gè)字母開頭的單詞(首字母不區(qū)分大小寫)進(jìn)行記憶訓(xùn)練,用戶填寫詞義,用戶輸入的詞義在釋義中存在時(shí)認(rèn)為回答正確,此時(shí)輸出當(dāng)前詞全部釋義;輸入錯(cuò)誤時(shí),記錄該單詞信息到錯(cuò)詞字典;用戶直接輸入回車時(shí)結(jié)束訓(xùn)練,并輸出正確率并輸出全部出錯(cuò)單詞的信息。
import random def create_dict(file): """接收表示文件名的字符串參數(shù),讀文件中的單詞及釋義,以單詞為鍵,其他部分為值創(chuàng)建字典。 多個(gè)釋義間可能是逗號(hào)或空格分隔,但單詞與第一個(gè)釋義間至少有一個(gè)空格, 將文件每一行根據(jù)空格切分一次,切分結(jié)果分別作為鍵和值創(chuàng)新字典。 返回字典。 """ # 補(bǔ)充你的代碼 dic = {} # 創(chuàng)建空字典 with open(file, 'r', encoding='utf-8') as data: # 打開文件,以讀模式創(chuàng)建文件對(duì)象 for x in data: # 遍歷文件對(duì)象 word, trans = x.strip().split(maxsplit=1) # 每行根據(jù)空格切分為列表,只切分一次,將單詞與釋義分開 # 補(bǔ)充程序,列表的首個(gè)元素作為字典的鍵,第二個(gè)元素做字典的值,加入字典中,返回這個(gè)字典 dic.update({word:trans}) return dic def merge_dic(file1, file2): """將讀取兩個(gè)文件中獲得的字典合并為一個(gè),返回合并后的字典""" # 補(bǔ)充你的代碼 dict1 = create_dict(file1) dict2 = create_dict(file2) dict3 = dict1 | dict2 return dict3 def training(cet_dic, letter): """輸入一個(gè)字母,返回以這個(gè)字母開頭的詞匯的字典(不區(qū)分大小寫),用于單詞記憶訓(xùn)練""" # 補(bǔ)充你的代碼 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): """從訓(xùn)練字典中隨機(jī)抽取以某個(gè)字母開頭的單詞,用戶填寫詞義 回答正確時(shí),輸出當(dāng)前詞全部釋義,輸入錯(cuò)誤時(shí),記錄該單詞信息, 直接輸入回車時(shí)結(jié)束輸入,訓(xùn)練結(jié)束后輸出全部出錯(cuò)單詞的信息""" # 創(chuàng)建空字典,用于容納答錯(cuò)單詞 dic1 = {} while True: # 無限循環(huán)用于一次訓(xùn)練記憶多個(gè)單詞 word = random.choice(list(train_dic.keys())) # 從字典的鍵中隨機(jī)抽取一個(gè)單詞 print(f'請(qǐng)輸入單詞{word}的中文翻譯:') # 輸出提示語(yǔ)句 answer = input() # 輸入當(dāng)前單詞的語(yǔ)義 if not answer: # 直接回車時(shí)輸入為空,結(jié)束循環(huán) print('訓(xùn)練結(jié)束!') break # 補(bǔ)充你的程序,如果輸入在釋義中存在,輸出完整釋義,否則輸出'答案錯(cuò)誤'并將當(dāng)前單詞加入答錯(cuò)單詞字典 elif answer in train_dic[word]: print(f'{word}的釋義為:{train_dic[word]}') elif answer not in train_dic[word]: print('答案錯(cuò)誤') dic1[word] = train_dic[word] print('需要加強(qiáng)記憶的單詞:') # 補(bǔ)充代碼,逐個(gè)輸出答錯(cuò)字典中的單詞和釋義 for i in dic1: print(f'{i}:{dic1[i]}') if __name__ == '__main__': filename1 = '/data/bigfiles/cet4.txt' # 數(shù)據(jù)文件名 filename2 = '/data/bigfiles/cet6.txt' # 數(shù)據(jù)文件名 alphabet = input('輸入今天訓(xùn)練單詞首字母:\n').lower() random.seed(ord(alphabet)) # 用當(dāng)前字典的ASCII值做隨機(jī)數(shù)種子,方便評(píng)測(cè) cet_dict = merge_dic(filename1, filename2) # 調(diào)用函數(shù),返回字典類型數(shù)據(jù) train_dict = training(cet_dict, alphabet) # 本次訓(xùn)練單詞的字典 en_to_ch(train_dict) # 調(diào)用函數(shù)進(jìn)行訓(xùn)練
到此這篇關(guān)于python字典翻轉(zhuǎn)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python字典翻轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python中將字典轉(zhuǎn)換為列表的方法
- Python中字典和JSON互轉(zhuǎn)操作實(shí)例
- python中將字典轉(zhuǎn)換成其json字符串
- python 將字符串轉(zhuǎn)換成字典dict
- Python 字典與字符串的互轉(zhuǎn)實(shí)例
- Python中實(shí)現(xiàn)字符串類型與字典類型相互轉(zhuǎn)換的方法
- Python中將dataframe轉(zhuǎn)換為字典的實(shí)例
- Python處理json字符串轉(zhuǎn)化為字典的簡(jiǎn)單實(shí)現(xiàn)
- Python3實(shí)現(xiàn)的字典、列表和json對(duì)象互轉(zhuǎn)功能示例
- python實(shí)現(xiàn)字符串和字典的轉(zhuǎn)換
相關(guān)文章
Python Pandas Dataframe.describe()使用及代碼實(shí)例
這篇文章主要介紹了Python Pandas Dataframe.describe()使用及代碼實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Django模板導(dǎo)入母版繼承和自定義返回Html片段過程解析
這篇文章主要介紹了Django模板導(dǎo)入母版繼承和自定義返回Html片段過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09python 把數(shù)據(jù) json格式輸出的實(shí)例代碼
下面小編就為大家?guī)硪黄猵ython 把數(shù)據(jù) json格式輸出的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10Python+Opencv文本檢測(cè)的實(shí)現(xiàn)
本文主要介紹了如何使用OpenCV和EAST文本檢測(cè)器檢測(cè)圖像中的文本,以便大家可以在自己的應(yīng)用程序中應(yīng)用文本檢測(cè)。感興趣的同學(xué)可以關(guān)注一下2021-11-11python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例
這篇文章主要介紹了python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python 環(huán)境搭建 及python-3.4.4的下載和安裝過程
這篇文章主要介紹了python 環(huán)境搭建 python-3.4.4的下載和安裝過程,文中給大家補(bǔ)充介紹了pycharm的基本用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07