【发布时间】:2018-04-24 18:24:48
【问题描述】:
如果我有两个字符串,如何找到字符串停止匹配的索引? 'abcdefghijk' 和假字母 'abcdxyz',我知道它们在索引 4 处停止匹配,但是如何在函数设置中输出呢?
【问题讨论】:
-
也许你可以在循环中使用 find() 并在它与你的字符串不匹配时中断?
标签: python python-3.x list splice
如果我有两个字符串,如何找到字符串停止匹配的索引? 'abcdefghijk' 和假字母 'abcdxyz',我知道它们在索引 4 处停止匹配,但是如何在函数设置中输出呢?
【问题讨论】:
标签: python python-3.x list splice
使用enumerate()函数查找第二个字符串中的字母与第一个字符串中的当前字母不匹配的索引-
def matcher(str1, str2):
for idx, item in enumerate(str1):
if item != str2[idx]:
return idx
return -1 # if no differing letter in second string
print(matcher('abcdefghijk', 'abcdxyz')) # 4
【讨论】:
使用一些简单的comparisons sliced strings:
我们可以创建一个简单的function 保持slicing 和strings 直到它到达第一个string 的末尾并比较它们:
def match(s1, s2):
for i in range(len(s1)+1):
if s1[:i] != s2[:i]:
return i - 1
return -1
还有一些测试:
>>> match('abcdefghijk', 'abcdxyz')
4
>>> match('124', '123')
2
>>> match('123456', '123abc')
3
>>> match("abcdef", "abcdef")
-1
【讨论】: