如何返回由两个字符串交替字符组成的字符串?
问题描述:
我想通过交替输入的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."
这是需要改变的“真”声明。任何人都可以帮我吗?
答
您可以使用zip
和扁平化的结果:
>>> ''.join([''.join(t) for t in zip('abc','def')])
'adbecf'
其中超过2串以及工作原理:
>>> ''.join([''.join(t) for t in zip('abc','def','xyz')])
'adxbeycfz'
答
您可以使用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'
哦,这里还有[如何交错字符串在Python?](http://stackoverflow.com/q/3083829/953482) – Kevin
你可以从一个好的Python教程开始...... – Jan