小工具说明
- 第一个函数countLetter():用来查找给定的单字符letter在列表myStrList中的索引位置,返回值为一个列表
- 第二个函数countSubString():
2.1 查找字符串childStr在字符串fatherStr中出现的次数及开始位置,lettersToLower设置为0时区分大小写,设置为非0时不区分大小写
2.2 返回值为一个字典:
{
‘childStr_original’: ‘abcabc’, (用来匹配的原始子字符串)
‘fatherStr_original’: ‘abcabcabcabcabcabc’, (用来匹配的原始父字符串)
‘flag’: True, (True-匹配成功,False-匹配失败)
‘count’: 5, (匹配到的个数)
‘index_start’: [0, 3, 6, 9, 12] (匹配到的下标索引列表)
}
- 说明:python3中str的count内嵌方法获取的结果和该小工具有区别,如’aaaaa’.count(‘aa’)=2,countLetter(‘aa’, ‘aaaaa’)=4
源码
# 计算一个字符letter在给定的list中的位置
def countLetter(letter, myStrList):
if len(letter) != 1:
return False
if letter not in myStrList:
return False
tem = []
for i in range(0,len(myStrList)):
if letter == myStrList[i]:
tem.append(i)
return tem
# 查找字符串childStr在字符串fatherStr中出现的次数及开始位置,lettersToLower设置为0时区分大小写,设置为非0时不区分大小写
def countSubString(childStr, fatherStr, lettersToLower = '0'):
resDict = {
}
childStr = str(childStr)
fatherStr = str(fatherStr)
resDict['childStr_original'] = childStr
resDict['fatherStr_original'] = fatherStr
if str(lettersToLower) != '0':
childStr = childStr.lower()
fatherStr = fatherStr.lower()
# 对比用的子字符串如果为空或者不在目标字符串中,直接返回False
if childStr not in fatherStr or len(childStr) < 1:
resDict['flag'] = False
resDict['count'] = 0
resDict['index_start'] = []
return resDict
# 两个字符串相同时快速处理
if childStr == fatherStr:
resDict['f