Python - 查找文本文件中最长的单词错误
Python - Finding the longest word in a text file error
我正在尝试查找文本文件中最长的单词,但它一直在说:
ValueError: max() arg is an empty sequence
def find_longest_word(filename):
with open(filename,'r+') as f:
words = f.read().split()
max_len_word = max(words,key=len)
print('maximum length word in file :',max_len_word)
print('length is : ',max_len_word)
print(find_longest_word('data1.txt'))
我做错了什么?
这应该适合你:
from functools import reduce
def find_longest_word(filename):
f = open(filename, "r")
s = [y for x in f.readlines() for y in x.split()]
longest_word = reduce(lambda x, y: y if len(x) < len(y) else x, s, "")
print("The longest word is", longest_word, "and it is", len(longest_word),"characters long")
return longest_word
print(find_longest_word('input.txt'))
我已经测试了函数内部的代码,它可以工作,但没有函数声明。
我看到您的代码在第 2 行缺少缩进。此外,您想从函数中打印一个 return 值,但您的函数没有 return 任何内容。所以也许你的代码应该是这样的。
def find_longest_word(filename):
with open(filename,'r+') as f:
words = f.read().split()
max_len_word = max(words,key=len)
max_len = len(max(words,key=len))
return max_len_word, max_len
函数的用法应该是这样的
word, length = find_longest_word('data1.txt')
print("max length word in file: ", word)
print("length is: ", length)
我正在尝试查找文本文件中最长的单词,但它一直在说:
ValueError: max() arg is an empty sequence
def find_longest_word(filename):
with open(filename,'r+') as f:
words = f.read().split()
max_len_word = max(words,key=len)
print('maximum length word in file :',max_len_word)
print('length is : ',max_len_word)
print(find_longest_word('data1.txt'))
我做错了什么?
这应该适合你:
from functools import reduce
def find_longest_word(filename):
f = open(filename, "r")
s = [y for x in f.readlines() for y in x.split()]
longest_word = reduce(lambda x, y: y if len(x) < len(y) else x, s, "")
print("The longest word is", longest_word, "and it is", len(longest_word),"characters long")
return longest_word
print(find_longest_word('input.txt'))
我已经测试了函数内部的代码,它可以工作,但没有函数声明。
我看到您的代码在第 2 行缺少缩进。此外,您想从函数中打印一个 return 值,但您的函数没有 return 任何内容。所以也许你的代码应该是这样的。
def find_longest_word(filename):
with open(filename,'r+') as f:
words = f.read().split()
max_len_word = max(words,key=len)
max_len = len(max(words,key=len))
return max_len_word, max_len
函数的用法应该是这样的
word, length = find_longest_word('data1.txt')
print("max length word in file: ", word)
print("length is: ", length)