我希望自己创建一个’find’程序,它能够在字符串中找到一个子字符串,它也应该能够向后读取一个字符串并给出匹配的位置 – 就像
python中的原始find函数一样.
我无法弄清楚我应该使用什么逻辑 – 我也不知道原始查找功能如何?
我刚开始使用python,对编程也很新.
任何指导都将受到高度赞赏!
最佳答案 这是一个返回列表中所有提示的解决方案,rfind是使用原始的find关键字向后定义的.您也可以使用整数或浮点数.您可以轻松修改它,以便仅返回第一个提示.
def find( x, string, backward = False, ignore_case = False ):
x = str(x)
string = str(string)
if ignore_case:
x = x.lower()
string = string.lower()
str_list = [ i for i in string ]
x_list = [ i for i in x ]
if backward:
x_list.reverse()
str_list.reverse()
x = ''.join(x_list)
string = ''.join(str_list)
lenx = len(x)
ans = []
for i in range( len(str_list) - lenx ):
if x == string[i:i+lenx]:
ans.append( i )
return ans
def rfind( x, string, ignore_case = False):
return find( x, string, backward = True, ignore_case = ignore_case )
print find('f','abcdefgacdfh')
# [5, 10]
print rfind('f','abcdefgacdfh')
# [1, 6]
print find(12,'aaa3331222aa12a')
# [6, 12]
print rfind(12,'aaa3331222aa12a')
# [1, 7]