我有一个下面的函数:
def f(s1,s2):
s=''
for i in range(min(len(s1),len(s2))):
s = s1[i] + s2[i]
if len(s1) < len(s2): return s + s2[len(s1):]
else: return s + s1[len(s2):]
print(f('1234','abc'))此函数应将两个字符串一起打印为1a2b3c4,但当我运行它时,我只得到最后一半的3c4。你知道为什么会发生这样的事情吗?谢谢!
发布于 2012-12-11 08:53:25
看起来你正在重新赋值变量“%s”,而你应该连接在一起。
替换:s= s1i + s2i
使用:s=s+ s1i + s2i
发布于 2012-12-11 08:48:32
因为你做得太难了。
s = ''.join((x + y) for (x, y) in zip(s1, s2))发布于 2012-12-11 08:52:31
您指的是for循环中的s +=,对吗?
https://stackoverflow.com/questions/13811847
复制相似问题