Python从文件中查找最长的单词

data.txt中保存有若干个单词,每个单词一行。请编写一个程序从文件中将所有单词读出,找到其中最长的单词,然后将其保存到result.txt中,程序须保存test.py中。注意:题目不要求去重,重复出现的单词算不同的单词。

data0data1data2data3data4
li  li  m  lili
wang   wang   wang  wang
zhangzhangzhangzhang
jin  jin  jinxiang
xiangxiang  yue yunpeng
  masanli  masanli
  guo degangr
  masanli  masanlihong
hongxiang
xiang

data0.txt的结果如下:
The longest word is: zhang
data1.txt的结果如下:
The longest words are: masanli,masanhe
data2.txt的结果如下:
The longest word is: m
data3.txt的结果如下:
The longest words are: masanli,masanli
data4.txt的结果如下:
The longest words are: yue yunpeng,guo degangr

代码实现:

a=[]
b=[]
c=[]
with open('data.txt','r') as fp:            #读取文本文件文件
    txt=fp.readlines()                      #把文本文件中的每行文件作为一个字符串存入txt列表中
    for i in range(len(txt)):
        txt[i]=txt[i].strip()               #删除当前字符串两端的空白字符
        a.append(len(txt[i]))               #将删除空白字符后的字符串追加到列表a中
    for i in txt:
        if i!='':
            b.append(i)                     #若字符串不为空则将其存放到列表b中
    m=b[0]                                  
    for i in b:
        if len(i)>len(m):
            m=i
    n=len(m)                                #遍历查找列表中的最长元素
    for i in b:
        if len(i)==n:
            c.append(i)                     #遍历查找所有与最长元素等长的字符串,将所有合法 
                                             #字符串存入列表c中
    
with open('result.txt','w') as fp:
    if len(c)==1:
        fp.write('The longest word is: {0}'.format(c[0]))  #满足条件的字符串只有一个
    else:
        d=','.join(c)
        fp.write('The longest words are: {0}'.format(d))   #满足条件的字符串有多个

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值