NIl*_*rma 4 python regex string count
假设我有一个像这样的字符串
aa = 'booked#booked#available#available#available#available#available#booked#available#booked'
Run Code Online (Sandbox Code Playgroud)
现在我想知道'available'子串已经在这个字符串中重复出现了多少次.所以在这种情况下,它应该是5,因为''available'将重复出现5次,如果有人可以自己提供python库函数来获得它,那将非常有用,正则表达式解决方案也很受欢迎.
到目前为止我尝试过的是
aa.count('#available')
Run Code Online (Sandbox Code Playgroud)
这显然给了我6,
aa.count('#available#available')
Run Code Online (Sandbox Code Playgroud)
这又是错的.
import re
count(re.findall('available#'))
Run Code Online (Sandbox Code Playgroud)
也是错的
Mic*_*nan 14
来自itertools的Groupby对于这些类型的问题非常出色:
from itertools import groupby
aa = 'booked#booked#available#available#available#available#available#booked#available#booked'
words = aa.split('#')
for key, group in groupby(words):
print len(list(group)), key
Run Code Online (Sandbox Code Playgroud)
输出:
2 booked
5 available
1 booked
1 available
1 booked
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1481 次 |
| 最近记录: |