【问题标题】:How to compare individual characters in two strings in Python 3如何在 Python 3 中比较两个字符串中的单个字符
【发布时间】:2016-02-11 00:56:01
【问题描述】:

我正在尝试比较两个不同字符串的第一个字符(等等),以根据这些结果形成一个新字符串。这是我尝试使用的,但是它将每个列表的每个元素相互比较。

def compare(a,b):
    s = ""
    for x in a:
        for y in b:
            if x == y:
                s+=str(x)
            else:
                s+=str(y)

这似乎是一个简单的问题,但我被卡住了。

【问题讨论】:

  • 您所写的只是将 y 复制到 s 中。你到底想做什么?
  • 您将一个字符串中的每个字符与另一个字符串中的每个字符进行比较,而不仅仅是相应的字符。

标签: python string python-3.x


【解决方案1】:

使用邮编:

def compare(a, b):
    for x, y in zip(a, b):
        if x == y:
            ...

【讨论】:

    【解决方案2】:

    您是否正在寻找具有类似逻辑的东西?它从每个输入字符串中选择按字母顺序较早的字符:

    def compare(a,b):
        s = ""
        for i in range(len(a)):
            if a[i] < b[i]:
                s+=str(a[i])
            else:
                s+=str(b[i])
        return s
    
    print compare ("seven", "eight")
    

    输出:

    eegen
    

    这个的单行版本是

    return ''.join(a[i] if a[i] < b[i] else b[i] for i in range(len(a)))
    

    【讨论】:

      【解决方案3】:
      input(x)
      input(y)
      cnt = 0
       for char_val in x:
         if b[cnt] == char_val:
            print("match")
         else:
            print("mis-match")
      

      【讨论】:

      • 请考虑添加至少一些解释,好像为什么这回答了这个问题
      【解决方案4】:

      这是一个完整的函数

      def compare_strings(a,b):
          result = True
          if len(a) != len(b): print('string lengths do not match!')
          for i,(x,y) in enumerate(zip(a,b)):
              if x != y:
                  print(f'char miss-match {x,y} in element {i}')
                  result = False
          if result: print('strings match!')
          return result
      

      【讨论】:

        【解决方案5】:
        def twoStrings(s1, s2):
        for i in range(len(s1)):
            for j in range(len(s2)):
                if s2[j] == s1[i]:
                    return 'YES'
        return 'NO'
        

        【讨论】:

        • 格式可以改进(returnfor关键字与def在同一列)并且最好用代码添加一点解释
        【解决方案6】:

        我们可以编写简单易行的方法来比较两个字符串中的相似字母

        def compare(a,b):
            s = ""
            t=""
            for x in a:
                for y in b:
                    if x == y:
                        t=x
                s=s+t
            print(s)
        
        compare("xyz","axy")
        

        这里首先for loop将比较字符串中的每个字母并显示所有相似的字符。

        【讨论】:

          猜你喜欢
          • 2022-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多