【问题标题】:python3 function correctnesspython3函数正确性
【发布时间】:2012-11-28 12:13:48
【问题描述】:

我在下面有一个函数:

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

【问题讨论】:

    标签: python function python-3.x


    【解决方案1】:

    因为你正在努力。

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

    【讨论】:

    • 哦。但是 zip 是什么意思?
    • @IgnacioVazquez-Abrams:现在告诉他如何点击链接。
    • 哦,看起来很简单。谢谢!这也是 join 的作用吗?
    • @GregS 哈哈别担心我能做到。
    【解决方案2】:

    看起来您正在重新分配变量“s”,而您应该连接。

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

    有: s = s + s1[i] + s2[i]

    【讨论】:

      【解决方案3】:

      您的意思是 s +=for 循环中,对吧?

      【讨论】:

      • 应该是这样吗?
      • @Romulus 那么就可以了。然后你连接所有对,而不是最后一个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      相关资源
      最近更新 更多