使用Python中的zip方法根据索引计算两个字符串中的字符相等数

使用Python中的zip方法根据索引计算两个字符串中的字符相等数,python,Python,我正在尝试编写一段代码,比较两个字符串的字符,然后显示匹配的字符数 我就是这样开始的,但是我不知道如何实际使用这个方法来比较两个字符串 password = 'BADGED' guess = 'BALDER' for p, g in zip(password, guess): 非常感谢您的帮助和建议 编辑:我正在尝试按各自的顺序匹配字符。如果使用zip,则只检查序列对。 您需要两个循环来检查可以按不同顺序进行的匹配 password = 'BADGED' guess = 'BAL

我正在尝试编写一段代码,比较两个字符串的字符,然后显示匹配的字符数

我就是这样开始的,但是我不知道如何实际使用这个方法来比较两个字符串

password = 'BADGED'

guess = 'BALDER'
    
for p, g in zip(password, guess):
非常感谢您的帮助和建议


编辑:我正在尝试按各自的顺序匹配字符。

如果使用zip,则只检查序列对。 您需要两个循环来检查可以按不同顺序进行的匹配

password = 'BADGED'

guess = 'BALDER'

answer = 0
for p in password:
    for g in guess:
        if p == g:
            answer += 1
            
print(answer)

如果您想要完全连续的对,只需使用邮政编码或邮政编码链接

带索引的变量 请注意,如果字符串长度不同,将抛出错误

password = 'BADGED'

guess = 'BALDER'

answer = 0
for i in range(len(password)):
    if password[i] == guess[i]:
        answer += 1

print(answer)
带迭代器的变量
如果使用zip,则只检查串行对。 您需要两个循环来检查可以按不同顺序进行的匹配

password = 'BADGED'

guess = 'BALDER'

answer = 0
for p in password:
    for g in guess:
        if p == g:
            answer += 1
            
print(answer)

如果您想要完全连续的对,只需使用邮政编码或邮政编码链接

带索引的变量 请注意,如果字符串长度不同,将抛出错误

password = 'BADGED'

guess = 'BALDER'

answer = 0
for i in range(len(password)):
    if password[i] == guess[i]:
        answer += 1

print(answer)
带迭代器的变量
我会将其封装在如下函数中:

def matches(s1, s2):
    matches = []
    for c1, c2 in zip(s1, s2):
        if c1 == c2:
            matches.append(c1)
    return matches
输出:

>>> matches('TEST', 'TEST')
['T', 'E', 'S', 'T']
>>> matches('BADGED', 'BALDER')
['B', 'A', 'E']

我会将其封装在如下函数中:

def matches(s1, s2):
    matches = []
    for c1, c2 in zip(s1, s2):
        if c1 == c2:
            matches.append(c1)
    return matches
输出:

>>> matches('TEST', 'TEST')
['T', 'E', 'S', 'T']
>>> matches('BADGED', 'BALDER')
['B', 'A', 'E']

这适用于长度相同的弦:

password = 'BADGED'
guess = 'BALDER'
answer = 0
for p, g in zip(password, guess):
    if p==g :
        answer +=1

print(answer)

这适用于长度相同的弦:

password = 'BADGED'
guess = 'BALDER'
answer = 0
for p, g in zip(password, guess):
    if p==g :
        answer +=1

print(answer)

这将按照各自的顺序计算两个字符串之间的相似性比率。之前,请使用以下命令安装fuzzywuzzy:pip install fuzzywuzzy

from fuzzywuzzy import fuzz

password = 'BADGED'

guess = 'BALDER'

print(fuzz.ratio(password,guess))

这将按照各自的顺序计算两个字符串之间的相似性比率。之前,请使用以下命令安装fuzzywuzzy:pip install fuzzywuzzy

from fuzzywuzzy import fuzz

password = 'BADGED'

guess = 'BALDER'

print(fuzz.ratio(password,guess))

您已经成功地在成对的字符上编写了一个循环。你知道如何做平等比较吗?您知道如何递增计数器吗?您已经成功地在成对的字符上编写了一个循环。你知道如何做平等比较吗?你知道如何增加计数器吗?对不起,我应该指定。我实际上是在按各自的顺序查找匹配的字符。我完成了我的回答,@DrosiiSorry我应该指定的。我实际上是在按各自的顺序寻找匹配的字符。我完成了我的回答,@Drosii