文本文档中包含大多数字符实例的行

时间:2013-07-03 17:10:04

标签: python python-3.x

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

到目前为止

代码

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

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

2 个答案:

答案 0 :(得分:3)

一些提示:

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

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

答案 1 :(得分: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'