获取data.count(“ and”)为2的原因是什么?

时间:2019-05-10 10:10:56

标签: python

在执行以下代码时,我得到2的结果。有人可以告诉我在python3x中获得2的原因吗?

data="Hands to clap and eyes to see"
data.count("and")

2

1 个答案:

答案 0 :(得分:0)

从文档中:https://docs.python.org/3/library/stdtypes.html#str.count

  

str.count(sub [,start [,end]])
  返回子字符串sub在[start,end]范围内不重叠出现的次数。

如您所见,字符串Hands to clap and eyes to see有两个and字符串,一个在Hands中,一个在and中,因此计数为2

要解决此问题,您可以将字符串拆分为列表,然后应用计数,该计数将仅匹配and之类的完整单词,而不匹配hands之类的部分单词

In [115]: data="Hands to clap and eyes to see"                                                                                                                                    
#Split on whitespace to convert string to list of words
In [116]: li = data.split()                                                                                                                                                       
#Find the complete word and in the list
In [117]: li.count('and')                                                                                                                                                         
Out[117]: 1