如何在 Python 3 中比较两个字符串中的单个字符

新手上路,请多包涵

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

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

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

原文由 Jackie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 794
2 个回答

使用邮编:

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

原文由 L3viathan 发布,翻译遵循 CC BY-SA 3.0 许可协议

您是否在寻找与此类似的逻辑?它从每个输入字符串中选择字母顺序较早的字符:

 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)))

原文由 Prune 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题