我试图通过交替输入的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."
这是需要改变的“真实”陈述。谁能帮助我?
答案 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'