2016-11-04 114 views
-2

我想通過交替輸入的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

哦,這裏還有[如何交錯字符串在Python?](http://stackoverflow.com/q/3083829/953482) – Kevin

+1

你可以從一個好的Python教程開始...... – Jan

回答

2

您可以使用zip和扁平化的結果:

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

其中超過2串以及工作原理:

>>> ''.join([''.join(t) for t in zip('abc','def','xyz')]) 
'adxbeycfz' 
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'