【问题标题】:Python compare two strings and check how many chars they have in common [duplicate]Python比较两个字符串并检查它们共有多少个字符[重复]
【发布时间】:2018-05-19 09:41:10
【问题描述】:

我只是想知道如何检查两个字符串共有多少个字符。 例如,如果我有 "car" 和 "cars",结果应该是 3。

有人知道吗?

提前致谢

最大

【问题讨论】:

  • 喜欢以任何顺序或在特定位置,即汽车,rac = 3 以及?重复呢
  • 你知道怎么Iterate over a string in Python吗?这会让你一个字一个字地去。
  • 遍历第一个字符串,如果在第二个字符串中找到当前字符,则加 1。返回结果?
  • @lPlant 是的,car 和 rac 也应该是 3
  • 我可以用“是的,我有线索”来回答这个问题。但我认为这不是您要寻找的答案。尽量确保您的问题有意义。

标签: python string char compare


【解决方案1】:

既然你没有写任何代码,我也不会。但基本上是这样的:

-将字符串转换为列表

-使用集合来获取它们共同的字母

-获取你的集合的长度

这里最大的危险是如果你想计算重复的字母

【讨论】:

    【解决方案2】:

    像这样的

    count = 0
    
    for letter in set(string1):
      count += string2.count(letter)
    
    print(count)
    

    【讨论】:

      【解决方案3】:

      这是使用Counter 的解决方案。我们为每个单词创建一个Counter,然后找到这些Counters 的交集。这本身就是一个Counter,我们可以将这些值相加来找到共享字符的数量

      from collections import Counter
      
      def shared_chars(s1, s2):
          return sum((Counter(s1) & Counter(s2)).values())
      
      print(shared_chars('car', 'carts'))
      

      将打印

      3
      

      Counter 的情况下,交集是对应计数的最小值。

      >>> Counter('abbb') & Counter('bcc')
      Counter({'b': 1})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-24
        • 1970-01-01
        相关资源
        最近更新 更多