在python中逐字符比较两个字符串,得到不匹配的字符

在python中逐字符比较两个字符串,得到不匹配的字符,python,algorithm,nlp,Python,Algorithm,Nlp,我陷入了一个问题,我有两个不同长度的字符串,一个字符串是第一个字符串的子集 str1='usay' str2='usy' 我需要以一种方式匹配这两个字符串,作为回报,我得到索引“s”和字母“a”,因为我需要转到字符“s”的索引,并在其后面添加一个“a”,以匹配这两个字符串。我将如何执行此操作?首先,如果希望字符串匹配,为什么不设置str2=str1?也许有那么简单,但也许不是 否则,可以循环每个字符串中的字符,并检查它们是否匹配。当您发现它们不匹配时,可以设置字符串2以添加该字符,如下所示: s

我陷入了一个问题,我有两个不同长度的字符串,一个字符串是第一个字符串的子集

str1='usay'

str2='usy'


我需要以一种方式匹配这两个字符串,作为回报,我得到索引“s”和字母“a”,因为我需要转到字符“s”的索引,并在其后面添加一个“a”,以匹配这两个字符串。我将如何执行此操作?

首先,如果希望字符串匹配,为什么不设置str2=str1?也许有那么简单,但也许不是

否则,可以循环每个字符串中的字符,并检查它们是否匹配。当您发现它们不匹配时,可以设置字符串2以添加该字符,如下所示:

str1 = 'usay'
str2 = 'usy'

for n in range(0,int(len(str1))):
    if str1[n] == str2[n]: print(f'letter {n} is same!')
    if str1[n] != str2[n]:
        str2 = str2[:n] + str1[n] + str2[n:] #This takes all the characters before our 
                                             #difference shows, adds the difference character,
                                             #and then adds the characters after the difference
    
print(f'str1 is {str1}')
print(f'str2 is {str2}')
运行此命令给了我以下信息:

letter 0 is same!
letter 1 is same!
letter 3 is same!
str1 is usay
str2 is usay

此代码假定str1包含更多字符。我认为如果存在多个差异(比如if
str2=uy
而不是
usy
),那么它就可以正常工作。

欢迎来到StackOverflow。这不是免费的编码服务。请拿着这本书,读着,还有那本。提供一个。“为我实现此功能”是本网站的主题。你必须做出诚实的尝试,然后问一个关于你的算法或技术的具体问题。