Python 合并两个字符串

Python 合并两个字符串,python,string,python-3.x,Python,String,Python 3.x,结果: a = '---e' b = 'e---' for i in a: c='' for k in b: if i == k: c += i else: c += '-' print(c) 我想合并a和b,这样结果就是“e--e”。可以使用for循环来完成此操作吗?有人可以修改我的代码或提出不同的方法吗。如果可能的话,我更喜欢使用for循环 谢谢 更新: 多亏了“poke”和他对zip函数的解释,我想出了一个可行的代码: e--

结果:

a = '---e'
b = 'e---'

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


print(c)
我想合并a和b,这样结果就是“e--e”。可以使用for循环来完成此操作吗?有人可以修改我的代码或提出不同的方法吗。如果可能的话,我更喜欢使用for循环

谢谢

更新:

多亏了“poke”和他对zip函数的解释,我想出了一个可行的代码:

e---
印刷品(c)

输出:

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

一种可能性是,从第一个字符串中提取字符,除非该字符串是
-

ee-e
这是通过首先压缩两个字符串来实现的。这样,每个字符将与位于同一位置的另一个字符串中的字符配对。因此,我们得到了一个配对列表:

>>> a = '---e'
>>> b = 'e---'
>>> ''.join(x if x != '-' else y for x, y in zip(a, b))
'e--e'
然后我们迭代该列表,将该对中的每个元素作为
x
y
。因此,我们现在只需要应用我们的规则,从这两个选项中选择一个。在上述情况下,我使用
x
,除非它等于
'-'

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

然后收集所有这些单独的字符,并将它们连接起来以获得一个字符串。

只有当两个字符相同时,才能合并;合并如果它们不相等,则选择不相等的一个。您还将测试两个字符串的乘积,而不是将字符配对。例如,将
a
的第一个字符与
b
中的*每个字符进行比较。然后将
a
的第二个字符与
b
中的*每个字符进行比较。两个字符串
e--
f--e
会发生什么情况?请注意,在外循环的每次迭代中,您都会将
c
重置为空字符串,因此,只有最后一次迭代才会对最终值产生任何影响。您只是提供了一个测试用例,“合并”两个字符串的一般规则是什么?不,不幸的是不是。如何构建它们并不重要,只要说给定两个字符串s1和s2,如何合并它们?感谢zip函数的解释。我能够使用for循环重写。代码更具可读性。
x if x != '-' else y