python3函数正确性

时间:2012-12-11 00:46:16

标签: python function python-3.x

我有以下功能:

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。关于为什么会发生这种情况的任何想法?谢谢!

3 个答案:

答案 0 :(得分:4)

因为你正在艰难地做这件事。

s = ''.join((x + y) for (x, y) in zip(s1, s2))

答案 1 :(得分:1)

你的意思是s +=循环中的for,对吗?

答案 2 :(得分:1)

看起来你正在重新分配变量's'而你应该连接。

替换: s = s1 [i] + s2 [i]

使用: s = s + s1 [i] + s2 [i]