合并两个字符串

时间:2014-04-08 12:39:35

标签: 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)

结果:

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 个答案:

答案 0 :(得分: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

然后收集并加入所有这些单独的字符以获取字符串。