我进行了广泛搜索,似乎找不到任何可以做到这一点的预构建库:
给出python中的2个字符串,其中一个是原始字符串,另一个是用占位符替换的某些单词,我想确定原始字符串中已被占位符替换的单词的索引。
示例:
original = "This is the original string"
processed = "This is [placeholder] string"
indices = [8, 20]
第一个索引是已替换子字符串的开头,第二个索引是该子字符串的结尾。
任何帮助将不胜感激。
答案 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]
详细信息:
first != second
len(first) - first difference