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

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

data0 data1 data2 data3 data4
li   li   m   li li
wang    wang    wang   wang
zhang zhang zhang zhang
jin   jin   jin xiang
xiang xiang   yue yunpeng
  masanli   masanli
  guo degangr
  masanli   masanli hong
hong xiang
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))   #满足条件的字符串有多个

你可能感兴趣的:(Python典例,python)