-2

我一直在尝试定义一个获取 2 个输入(一个字符和一个文件路径)并返回字符出现在其中的次数的函数。我知道有一种更短的方法可以做到这一点,method.count但我想知道为什么这个函数总是返回 0。

def lettercount(character , path):
    with open("bear.txt") as myfile:
        counter = [obj for obj in myfile if obj==character]
        return len(counter)
4

1 回答 1

0

当您遍历一个文件 ( myfile) 时,您会得到行 ( obj)。所以obj==character只有当文件的最后一行是character并且没有尾随换行符时才会如此。


要遍历字符,您可以在理解中添加另一个循环:

c for line in myfile for c in line if c==character

虽然,您实际上不需要保留角色本身,因为您只需要他们的数量。你可以sum()这样使用:

count = sum(c==character for line in myfile for c in line)
return count
于 2021-07-26T19:24:28.353 回答