2015-04-30 41 views
5

將單詞右移,然後將其倒轉。如何將字符串右移並在python中將其逆轉?

你應該採取一個字右移和扭轉它然後返回如下:

>>> shift_reverse('Introduction to Computer Programming') 
gnimmargorP noitcudortnI ot retupmoC 

我試着用這種方法找到了上面的回答,但它似乎沒有工作 請幫助:(

s= "I Me You" 
def shift_reverse(s): 
    l= s.split() 
    new_str= ' '.join(l[-1:] + l[:-1]) 
    new_str = new_str[::-1] 
    return (new_str) 

print (shift_reverse(s)) 

但打印我得到的是

[evaluate untitled-3.py] 
eM I uoY 
+0

無論是反分裂重新排序聯接,或分重新排序,反向連接。你既沒有做。 –

回答

1

您將n EED扭轉每個重新排序列表:

reordered = l[-1:] + l[:-1] 
new_str = ' '.join(word[::-1] for word in reordered) 
-2

這應該爲你工作

s= "Introduction to Computer Programming" 
def shift_reverse(s): 
    l= s.split() 
    l = [l.pop()]+ l 
    return ' '.join(i[::-1] for i in l) 

print (shift_reverse(s)) 

輸出:

gnimmargorP noitcudortnI ot retupmoC 
+0

爲什麼downvote?它具有OP所要求的輸出 – letsc

0

這裏是一步步與功能:

創建shift函數將最後一個單詞移動到開頭:

def shift(sentence): 
    words = sentence.split() 
    return ' '.join([words[-1]] + words[:-1]) 

創建reverse功能扭轉所有單詞在句子中(使用list comprehension):

def reverse(sentence): 
    return ' '.join([word[::-1] for word in sentence.split()]) 

創建shift_reverse扭轉所有單詞,然後shift到開始最後:

def shift_reverse(sentence): 
    return shift(reverse(sentence)) 

結果:

shift_reverse('Introduction to Computer Programming') 

輸出:

'gnimmargorP noitcudortnI ot retupmoC' 
0

new_str = new_str[::1],你倒車每個字符整個字符串,字符。

ghi abc def 
fed cba ihg 

您必須反轉單詞list中的每個單詞。

def shift_reverse(string): 
    words = string.split() 
    shifted_words = [words[-1]] + words[:-1] 
    return ' '.join([word[::-1] for word in shifted_words]) 
0

你可以加入,在旋轉的分裂名單產生相反的詞生成器表達式:

>>> s = 'Introduction to Computer Programming' 
>>> ' '.join(w[::-1] for w in (lambda l: l[-1:] + l[:-1])(s.split())) 
'gnimmargorP noitcudortnI ot retupmoC' 
0
def shift_reverse(s): 
    rev = ["".join(reversed(word)) for word in s.split(" ")] 
    return "{} {}".format(rev.pop(), " ".join(rev)) 

扭轉所有的琴絃,彈出最後關閉的逆轉單詞列表,並加入餘。

+1

雖然代碼是讚賞的,但它應該總是有一個附隨的解釋。這不需要很長時間,但它是預期的。 – peterh

0

您可以將字符串在轉變,反向每個項目:

>>> phrase = 'Introduction to Computer Programming' 
>>> new = ' '.join([word[::-1] for word in [phrase.split()[-1]]+phrase.split()[:-1]]) 
>>> print new 
gnimmargorP noitcudortnI ot retupmoC 
>>> 
相關問題