Skip to main content
 首页 » 编程设计

Python 计数子串

2025年05月04日16mfryf

如何找到子字符串在字符串中出现了多少次? 我有分子式,如果字母是大写它是一个元素(例如 H),如果它有第一个大写字母和第二个小写字母而不是一个元素(例如 Ba),如果元素后有数字我必须添加那个数字到元素

示例:输入:Ba4H2Ba5Li3

如果我搜索 Ba 它应该打印数字 9(我有 Ba4 和 Ba5,即 9),如果我搜索 H 它应该打印 2(一个字母 H 但后面是数字 2),而 Li 它应该打印数字 3 .

请您参考如下方法:

你可以像这样使用正则表达式

data = "Ba4H2Ba5Li3" 
import re 
result = {} 
for element, count in re.findall(r"([A-Z][a-z]?)(\d*)", data): 
    result[element] = result.get(element, 0) + int(1 if count == "" else count) 
print result 
# {'H': 2, 'Ba': 9, 'Li': 3} 

现在,您可以从result 中获取每个项目的计数,如下所示

print result.get("Ba", 0) 
# 9 
print result.get("H", 0) 
# 2 
print result.get("Li", 0) 
# 3 
print result.get("Sa", 0) 
# 0