二1- 2022-06-03 20:52 采纳率: 60%
浏览 178
已结题

如何打印英文元音单词

2、 实验内容:文本文件sentence.txt中保存一句英文(不含标点符号),请把还有元音字母的个数最多的前三个英文单词打印出来,并按要求输出。具体要求入下。
(1)以只读方式读取文本文件sentence.txt
(2)句子中单词之间以空格分割。
(3)对单词中含有元音字母个数进行递减排序
(4)输出含有超过2个元音字母的单词;
(5)输出时含有元音字母的单词靠左排列,占17位
示例:sentence.txt中句子如下
Only once in a lifetime that a special dream comes suddenly your entire world seems beautiful and new
输出:
beautiful 5
lifetime 4
special 3
entire 3

我的代码:
vowel="aeiouAEIOU" #里面的字母都是元音
with open('sentence.txt','r',encoding='utf-8') as f: #1 以只读取模式读取记事本文件gdpython4.txt(读取文本时不自动把\r\n转换成\n)
words_file=words_flie.lower() #2
words=words_file.split(" ") #3句子中单词之间以空格分割,提取单词
words = list(set(words))
dict1={}
for word in words:
count = 0
for i in word:
if a == list(filter(lambda x:x in 'aeiou',word)) : #4
count+=1
counts[word] = len(a) #5在字典中更新保存元音字母个数
item= list(counts.items()) #6
item.sort(key=lambda x:x[1], reverse=True) #7 对单词中含有元音字母个数进行递减排序
for j in range(3):
word,number = item[j]
print("{:<17}(){}".format(word,count)) #8 输出时含有元音字母的单词靠左排列,占17位

如何改善此代码

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-03 21:28
    关注

    修改了你的代码:

    with open('sentence.txt','r',encoding='utf-8') as f: #1 以只读取模式读取记事本文件gdpython4.txt(读取文本时不自动把\r\n转换成\n)
        words_file = f.read()
    words=set(words_file.lower().split()) #3句子中单词之间以空格分割,提取单词
    dict1={}
    for word in words:
        a = list(filter(lambda x:x in 'aeiou',word)) 
        dict1[word] = len(a) #5在字典中更新保存元音字母个数
    res = sorted(dict1.items(), key=lambda x:x[1], reverse=True) #7 对单词中含有元音字母个数进行递减排序
    for i, j in res:
        print("{:<17}{}".format(i, j)) #8 输出时含有元音字母的单词靠左排列,占17位
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 6月3日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)