开发者社区> 问答> 正文

Python:如何检查两个字符串的匹配字符数?

一码平川MACHEL 2019-02-28 14:29:22 835

是否有更好的方法来检查两个不同字符串的字符匹配数。例如,当我输入“成功”这个词时,我想知道它与确切位置的“成功”一词有多少个字符。在这种情况下,“成功”匹配“成功”的7个字符中的5个。需要将此功能实施到更大的项目中。现在我有一个概念验证python代码:

word1 = input('Enter word1>')
word2 = input('Enter word2>')
#word1 is being compared to word2
word1_character_list = list(word1)
word2_character_list = list(word2)
matching_word_count = 0
for index in range(0,len(word2)):

if word1_character_list[index] == word2_character_list[index]:
    matching_word_count = matching_word_count + 1

print(matching_word_count)
我想知道是否有更简单和/或更短的方法吗?或者使用较少变量的方式。

Python
分享到
取消 提交回答
全部回答(2)
  • 腾虎
    2019-07-17 23:29:46

    没太看懂你的意思..
    有几种匹配..

    1. A = 成功 B = 我从来都是成功的..
      这种匹配出来返回5
    2. A = 成功 B = 我喜欢成为你的好朋友这个功能很强大.
      这种按我的理解是不能匹配出来的..

    如果是按照我的理解..
    就不能用List把成功两个字拆成2个元素.否则第二种情况也能匹配出来...

    如果是我说的第一种情况..其实方法还是非常多的.

    0 0
  • 一码平川MACHEL
    2019-07-17 23:29:46

    您可以使用该zip函数同时迭代两个字符串。此外,它被认为更加pythonic迭代列表中的项目并比较值而不是索引列表。

    例如:

    word1 = 'success'
    word2 = 'succeed'
    matches = 0
    for letter1, letter2 in zip(word1, word2):

    if letter1 == letter2:
        matches +=1
    

    matches

    5
    如果你想要真正有创意,你可以在一行中做到:

    matches = sum([l1 == l2 for l1, l2 in zip(word1, word2)])

    matches

    5

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题