-3

排队,

Boys dance, girls dance, he dances, she dances

如何计算发生的次数dance而不计算发生的次数dances(使用Python程序)?

一种方法是

>>> var = "Boys dance, girls dance, he dances, she dances"
>>> count1 = var.count("dance")
>>> count2 = var.count("dances")
>>> count = count1 - count2
>>> count
2
>>>

但它太长了。

有没有可用的单线方法?

4

4 回答 4

3

这将简单地计算表达式“dance”出现的次数

import re
print len(re.findall('dance\\b', string))

该网站应该为您提供有关正则表达式库的更多信息。 https://docs.python.org/2/library/re.html

于 2018-01-03T11:28:24.187 回答
3

试试下面

import re
count = sum(1 for _ in re.finditer('(dance[^\\w])', line))
print(count)
于 2018-01-03T11:29:21.633 回答
2

一种选择是使用正则表达式:

import re
len(re.findall("dance[^s]", string))
于 2018-01-03T11:28:54.527 回答
1

使用列表理解:在 处拆分,从拆分中" "剥离",."

v = "Boys dance, girls dance, he dances, she dances"
print(len([x for x in v.split() if x.strip(".,") == "dance"]))

使用列表推导在 python 3 中查找字符串中的单词出现的答案不处理粘在拆分单词上的 punktioations - 所以决定也在这里回答。

于 2018-01-03T11:33:34.043 回答