Return 比较不均匀长度字符串时的差异索引

Return index of differences when comparing uneven length strings

我正在比较两个字符串,例如,'beacon' 到 'becon'。我本质上希望该函数以列表的形式告诉我在 'beacon' 的索引 2 处存在差异。我目前拥有的是:

word1 = 'beacon'
word2 = 'becon'
list = []

for i in range(len(word1)):
    if word1[i] != word2[i]:
        list.append(i)
return list

但是我得到 IndexError: string index out of range 因为 word1 比 word2 长。切换单词不是一个选项,因为如果我将 'beconn' 之类的字符串与 'becon' 进行比较,我希望我的程序 return 索引 5。我如何在不导入任何东西的情况下解决这个问题?

(理想情况下,该解决方案也适用于偶数长度的字符串(例如,将 'becon' 与 'bacon' 进行比较),并且 return 如果存在索引列表不止一处不同。)

编码新手,非常感谢看到此内容的任何人!

使用zip()zip_longest()来满足两个str的不均匀长度:

word1 = 'beacon'
word2 = 'becon'
chrs_lst = []
indx_lst = []

for indx, (w1, w2) in enumerate(zip(word1, word2)):
    if w1 != w2:
        chrs_lst.append(w1)
        indx_lst.append(indx)
        
print(chrs_lst)
print(indx_lst)

输出:

['a', 'c', 'o', 'n']                                                                                                                                                         
[2, 3, 4, 5]