2015-06-11 23 views
0

我想編寫一個程序,將要求一個人的全名(第一,中間,最後),將打印(最後,中間,TSrif)。就像向後打印他們的名字,但是這些字母只能在他們的名字後面。我無法弄清楚如何翻轉單詞的順序而不用翻轉它們的字母。任何幫助?試圖打破一個字符串,並扭轉它

我迄今爲止代碼:

import sys 
str = raw_input("first middle last") 

str.split(); 
+0

1.不要將其命名爲'str'變量2'str.split'不是就地,你將不得不將其存儲在另一個變量 –

+0

感謝你的小費!我今天開始編程,我很感激任何提示。 – user3721227

回答

1

str.split()函數返回列表,它不會修改到位。所以,你想:

split_up = str.split() 

(顯然split_up是一個任意名稱,問題是,它是一個列表)

0
input_name = "first middle last" # whatever your input is: using as example here 
split_name = input_name.split() 
desired_output = [split_name [2], split_name [1], split_name [0][::-1]] 

>>> desired_output 
['last', 'middle', 'tsrif'] 

>>> ' '.join(desired_output) 
'last middle tsrif' 

>>> ', '.join(desired_output) 
'last, middle, tsrif' 
1
>>> my_string = raw_input('?: ').split() 
?: first middle last 
>>> new_string = ' '.join(my_string[:0:-1] + [my_string[0][::-1]]) 
>>> new_string 
'last middle tsrif' 
1
>>> s = 'first middle last' 
>>> L = s.split() 
>>> L[0] = L[0][::-1] 
>>> L 
['tsrif', 'middle', 'last'] 
>>> print L[::-1] 
['last', 'middle', 'tsrif'] 
0

讓我們假設你有一個變量s你」已經從用戶那裏獲得了。如果要拆分成單獨的話,你用.split()並保存結果

s = "john henry smith" 
parts = s.split() # ['john', 'henry', 'smith'] 

現在,扭轉這些話,你可以使用內置的功能reversed並將結果轉換到一個列表

rev_parts = list(reversed(parts)) # ['smith', 'henry', 'john'] 

最後,您只需要顛倒rev_parts的最後一個元素,就可以使用-1索引來指示列表中的最後一個元素。你想要做的是覆蓋現有的元素。我們可以使用reversed再次在這裏,但我們還需要使用join

rev_name = ''.join(reversed(rev_parts[-1])) # 'nhoj' 
rev_parts[-1] = rev_name # overwrite 'john' 

告訴它,但所有的字符一起回來現在你有你想要的清單。如果你想要把它們放在一起回來相隔的空間,使用另一join

result = ' '.join(rev_parts) 

你可以在這裏消除各種中間變量和步驟,你感覺很舒服。


使用reversed一種替代方法是使用切片語法[::-1]它說,從端部到開頭,後面一個字符的時間。在這種情況下,您將有

rev_parts = parts[::-1] 
rev_parts[-1] = rev_parts[-1][::-1] 
1

首先顛倒列表。然後反向最後一個字符串列表

my_list = string.split() 
my_list = list(reversed(my_list)) 
my_list[2] = my_list[2][::-1] 
print my_list 

不要使用海峽爲變量。

1

這應該工作

import sys 
str = "first middle last"; 
allWords = str.split(" "); 
length = len(allWords) 
for index in range(length-1): 
    print(allWords[length-index-1],end=" ") 
print((allWords[0])[::-1])