有没有一种方法可以确定python字符串与另一个字符串不同的索引?

时间:2020-05-29 11:42:52

标签: python string replace

我进行了广泛搜索,似乎找不到任何可以做到这一点的预构建库:

给出python中的2个字符串,其中一个是原始字符串,另一个是用占位符替换的某些单词,我想确定原始字符串中已被占位符替换的单词的索引。

示例:

original = "This is the original string"

processed = "This is [placeholder] string"

indices = [8, 20]

第一个索引是已替换子字符串的开头,第二个索引是该子字符串的结尾。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

那可能不是我编写的最漂亮的Python代码,但这可以工作:

first = [index for index, 
        (a, b) in enumerate(zip(list(original), 
        list(processed))) if a != b ][0]

second = [len(original) - index for index, 
         (a, b) in enumerate(zip(list(original[::-1]), 
         list(processed[::-1]))) if a != b ][0]

difference = [first, second]

它返回存在不一致的第一个索引。而且也一样倒退。

Out[76]: [8, 20]

详细信息:

  1. 比较每个字母,它返回第一个索引first != second
  2. 比较从结尾开始的每个字母,它返回len(first) - first difference
  3. 它将创建这两个索引的列表