txt文件python代码中最长的单词?

时间:2016-03-30 03:20:35

标签: python

这是我的程序版本。是否有更短更简单的方法来做到这一点?

d = open('txt.txt','r')
l = d.readlines()
string = l[0]
stringsplit = string.split()

d = []
for i in stringsplit:
    d.append(len(i))
    e = max(d)
for j in stringsplit:
    if len(j) == e:
        print("The longest word is", j, "and it is", len(j),"characters long")

2 个答案:

答案 0 :(得分:1)

您可以使用列表推导将输入转换为单个列表,然后在结果列表中使用reduce来查找最长的字符串。

f = open("input.txt", "r")
s = [y for x in f.readlines() for y in x.split()]
longest = reduce(lambda x, y: y if len(x) < len(y) else x, s, "")
print("The longest word is", longest, "and it is", len(longest),"characters long")

答案 1 :(得分:0)

您可以使用max()内置功能:

longest = max(stringsplit, key=len)
print("The longest word is {} and it is {} characters long".format(longest, len(longest)))

但值得注意的是,stringsplit是文件第一行中的单词列表,而不是整个文件本身。如果您希望它是所有单词,请使用stringsplit = d.read().split()