2

您将如何创建一个函数来查找文本文件中具有最多特定字符实例的文本行。该函数接受两个参数,一个文本文件名和一个字符,并输出出现该字符最多的行

到目前为止的代码

f = open("filename.txt", "r")

character = input("Enter character: ")
num_chars = 0
lines = f.readlines()
for lines in f:
    for char in line:
        if char == character.lower():
            num_chars += 1

这会打印出文本文件中出现的总数,我无法弄清楚如何正确执行

4

2 回答 2

3

一些提示:

  • max()接受一个可迭代的和一个键函数。在您的情况下,可迭代的是文件对象,关键函数是计数字符的函数。

  • 要计算一行中单个字符出现的次数,可以使用count()字符串的方法。要不区分大小写,lower()请先对整个字符串使用。

于 2013-07-03T17:17:29.873 回答
2

这是一个例子:

In [1]: def most(fname, char):
   ...:     with open(fname) as f:
   ...:         return max(f, key = lambda l: l.count(char))
   ...:  

请注意,它不会进行大小写转换,也不会从末尾删除换行符(读者练习)。

In [2]: !cat file.txt
foo
bar

In [3]: most('file.txt', 'o')
Out[3]: 'foo\n'

In [4]: most('file.txt', 'b')
Out[5]: 'bar\n'
于 2013-07-03T17:17:17.517 回答