合并两个字符串

2 投票
1 回答
531 浏览
提问于 2025-04-18 01:51
a = '---e'
b = 'e---'

for i in a:
  c=''
  for k in b:
    if i == k:
        c += i
    else:
        c += '-'


print(c)

结果:

e---

我想把 a 和 b 合并成 'e--e' 这样的结果。请问可以用 for 循环做到吗?有没有人能帮我修正我的代码或者给我推荐其他的方法?如果可以的话,我更想用 for 循环。

谢谢

更新:

感谢 'poke' 和他对 zip 函数的解释,我想出了一个可以工作的代码:

a = '---e'
b = 'ee-e'
c = ''
for x,y in zip(a,b):
  if x != '-':
    c += x
  else:
    c += y

打印(c)

输出:

ee-e

1 个回答

8

一种可能的方法是从第一个字符串中取字符,前提是这个字符不是 -

>>> a = '---e'
>>> b = 'e---'
>>> ''.join(x if x != '-' else y for x, y in zip(a, b))
'e--e'

这个方法的工作原理是先把两个字符串“压缩”在一起。这样,每个字符就和另一个字符串中相同位置的字符配对。我们就得到了一个字符对的列表:

>>> list(zip(a, b))
[('-', 'e'), ('-', '-'), ('-', '-'), ('e', '-')]

接着,我们遍历这个列表,把每对中的元素分别称为 xy。现在我们只需要根据规则选择这两个中的一个。在上面的例子中,我会选择 x,除非它等于 '-'

x if x != '-' else y

最后,把这些单独的字符收集起来,拼接成一个字符串。

撰写回答