我想找到给定字符串是字符串中一行上唯一单词的次数。例如,如果单词为"max"
且字符串为:
str = """max
hello max
max hi
max"""
正确的输出是2
。
我尝试使用re.findall
函数:
from re import findall
findall(r'^\max\n', str)
但它只计算了一次"max"
:
['max\n']
答案 0 :(得分:1)
您可以使用sum
内置功能:
>>> string = \
"""max
hello max
max hi
max"""
>>> sum('max' == line.strip() for line in string.split('\n'))
2
上述代码的工作原理是将字符串max
等于string
中的当前行的次数相加。总和将是max
在一条线上出现的次数。
答案 1 :(得分:1)
这就是工作:
import re
str = """max max
hello max
max
max
max
max
max hi
max"""
res = re.findall(r"(?m)^\s*max\s*$", str)
print res
print len(res)
<强>输出:强>
[' max', ' max', ' max', ' max', ' max']
5
答案 2 :(得分:0)
你可以试试这个:
import re
str = """max
hello max
max hi
max"""
results = len(re.findall("^max|max$", str))
输出:
2
答案 3 :(得分:0)
string = """max
hello max
max hi
max"""
word='max'
print(sum([1 for elem in string.split('\n') if (word == elem.strip())]))
你也可以尝试这个