如何返回由两个字符串中的交替字符组成的字符串?

时间:2016-11-04 18:39:25

标签: python string

我试图通过交替输入的2个字符串中的字母来返回一个字符串。例如,foldStrings(“abc”,“def”)应返回“adbecf”。这就是我所拥有的,但它只是检查两个字符串是否相同。我不确定从哪里开始。

    def foldStrings(string1,string2):
        x=string1
        y=string2
        if len(x)==len(y):
          return "True"
        else:
          return "The two strings are not equal in length."

这是需要改变的“真实”陈述。谁能帮助我?

2 个答案:

答案 0 :(得分:3)

您可以使用zip并展平结果:

>>> ''.join([''.join(t) for t in zip('abc','def')])
'adbecf'

对于超过2个字符串也适用:

>>> ''.join([''.join(t) for t in zip('abc','def','xyz')])
'adxbeycfz'

答案 1 :(得分:0)

您可以使用zip()同时迭代两个列表并执行join()list转换为str ::

>>> a, b = "abc", "def"
>>> new_list = [i+j for i, j in zip(a, b)]
>>> ''.join(new_list)
'adbecf'

我个人最喜欢(最快,查看answer to alternately appending elements from two lists的统计信息是通过list slicing执行此操作:

>>> n = list("abc") + list("def")  # create list
>>> n[::2], n[1::2] = a, b  # slice list alternatively
>>> ''.join(n)
'adbecf'