查找特定索引?

时间:2017-11-11 18:04:59

标签: python python-3.x list splice

如果我有两个字符串,如何找到字符串停止匹配的索引? 'abcdefghijk'和假字母'abcdxyz',我知道它们在索引4处停止匹配,但是如何在函数设置中输出?

2 个答案:

答案 0 :(得分:0)

使用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

答案 1 :(得分:0)

使用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

和一些测试:

let rec powerset = function
  | [] -> [[]]
  | x::xs -> List.collect (fun subset -> [subset; x::subset]) (powerset xs)