gpt4 book ai didi

python - 检查 Python 中两个字符串中的常用字母是否位于同一位置?

转载 作者:行者123 更新时间:2023-12-05 09:19:37 24 4
gpt4 key购买 nike

我正在尝试编写一个程序来检查两个字符串并打印两个字符串中位于相同位置的常见字符的数量,所以如果它检查了,就说:

  1. 单词'hello''heron' 它会输出 2 因为在相同的位置有两个共同的字母,

  2. 但是如果它检查了 'hello''fires' 它会输出 0 因为虽然它有一个共同的字母,它在每个字符串中的位置都不相同。

我将如何实现这一点?

最佳答案

您可以使用 zip() 同时遍历它们:

sum(1 if c1 == c2 else 0 for c1, c2 in zip(string1, string2))

甚至(为 TrueFalse 使用隐式整数值):

sum(c1 == c2 for c1, c2 in zip(string1, string2))

让我们分解一下:

zip(string1, string)

这会创建一系列元组,每个输入都有成对的项目,例如 helloheron 它看起来像这样:[('h ', 'h'), ('e', 'e'), ('l', 'r'), ('l', 'o'), ('o', 'n')].

for c1, c2 in

我们正在使用 generator expression迭代这些元组,将两个元素中的每一个分配给一个变量。

1 if c1 == c2 else 0

我们将发出一系列 1 和 0,其中 1 的数量等于等效位置字符相等的情况的数量。

sum()

最后,我们对发出的 1 和 0 序列求和 - 有效地计算相等字符的总数。

您甚至可以将其缩短一点,因为在 Python 中您可以将 bool 值 TrueFalse 视为 10 分别导致上面的第二种形式。

您可能想知道:如果 string1string2 的长度不同会怎样?这个表达式实际上仍然有效,因为 zip() 将在到达其中一个的末尾时立即停止。由于根据定义,较长字符串中的额外字符将不等于较短字符串中缺少的字符,因此这不会影响计数。

关于python - 检查 Python 中两个字符串中的常用字母是否位于同一位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40065821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com