2017-10-06 70 views
1

給出名稱時,例如Aberdeen ScotlandPython如何將每個字母放到一個單詞中?

我需要得到Adbnearldteoecns的結果。

將第一個單詞簡單化,但將最後一個單詞倒過來放在第一個單詞之間。

到目前爲止,我已經做了:

coordinatesf = "Aberdeen Scotland" 

for line in coordinatesf: 
    separate = line.split() 
    for i in separate [0:-1]: 
     lastw = separate[1][::-1] 
     print(i) 
+1

停止使用您使用的編輯器標記算法問題。 –

回答

0

有點髒,但它的工作原理:

coordinatesf = "Aberdeen Scotland" 
new_word=[] 
#split the two words 

words = coordinatesf.split(" ") 

#reverse the second and put to lowercase 

words[1]=words[1][::-1].lower() 

#populate the new string 

for index in range(0,len(words[0])): 
    new_word.insert(2*index,words[0][index]) 
for index in range(0,len(words[1])): 
    new_word.insert(2*index+1,words[1][index]) 
outstring = ''.join(new_word) 
print outstring 
0

注意你想要做的是隻有當輸入字符串是由明確的兩個相同長度的單詞。 我使用斷言來確保這是真實的,但你可以將它們排除在外。

def scramble(s): 
    words = s.split(" ") 
    assert len(words) == 2 
    assert len(words[0]) == len(words[1]) 
    scrambledLetters = zip(words[0], reversed(words[1])) 
    return "".join(x[0] + x[1] for x in scrambledLetters) 

>>> print(scramble("Aberdeen Scotland")) 
>>> AdbnearldteoecnS 

您可以使用sum()替換x [0] + x [1]部分,但是我認爲這會降低可讀性。

0

這會分割輸入,將第一個單詞與相反的第二個單詞相拉,加入對,然後加入對的列表。

coordinatesf = "Aberdeen Scotland" 
a,b = coordinatesf.split() 
print(''.join(map(''.join, zip(a,b[::-1])))) 
相關問題