2024-04-25 22:39:14 发布
网友
我有一个清单:
>>> data ['abaaabababbbbaaabaab', 'baaabbbbabaabbaabaab']
我需要计算孤立的b的数量(在本例中实际上是9)。i、 e.如果行中有一个b(前一个或下一个字符不是b),则变量增加1。你知道吗
b
>>> import re >>> data = ['abaaabababbbbaaabaab', 'baaabbbbabaabbaabaab'] >>> sum(1 for part in data for s in re.findall('[b]+', part) if len(s) == 1) 9
您可以编写一个更智能的正则表达式,只匹配您想要的正则表达式。这将允许您省略if len(s) == 1。你知道吗
if len(s) == 1
编辑。更聪明的正则表达式可能不值得,因为它更难理解:
>>> sum(len(re.findall('(?<!b)b(?!b)', part)) for part in data) 9
试试这样的
sum(len(c) == 1 for s in data for c in s.split('a')) # 9
只有当所有字符串都由a和b组成时,这才有效,否则使用re.split:
re.split
import re sum(len(c) == 1 for s in data for c in re.split(r'[^b]{1}', s)) # 9
您可以编写一个更智能的正则表达式,只匹配您想要的正则表达式。这将允许您省略
if len(s) == 1
。你知道吗编辑。更聪明的正则表达式可能不值得,因为它更难理解:
试试这样的
只有当所有字符串都由a和b组成时,这才有效,否则使用
re.split
:相关问题 更多 >
编程相关推荐