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
答案 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', '-')]
然后我们遍历该列表,将该对中的每个元素都设为x
和y
。所以我们现在只需要应用我们的规则来选择其中一个。在上述情况下,我使用x
,除非它等于'-'
:
x if x != '-' else y
然后收集并加入所有这些单独的字符以获取字符串。