【问题标题】:Finding a specific index? [duplicate]查找特定索引? [复制]
【发布时间】:2018-04-24 18:24:48
【问题描述】:

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

【问题讨论】:

  • 也许你可以在循环中使用 find() 并在它与你的字符串不匹配时中断?

标签: python python-3.x list splice


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用一些简单的comparisons sliced strings:

    我们可以创建一个简单的function 保持slicingstrings 直到它到达第一个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
    

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2022-11-02
      • 2011-07-04
      • 1970-01-01
      • 2019-11-16
      • 2018-11-22
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多