我想編寫一個程序,將要求一個人的全名(第一,中間,最後),將打印(最後,中間,TSrif)。就像向後打印他們的名字,但是這些字母只能在他們的名字後面。我無法弄清楚如何翻轉單詞的順序而不用翻轉它們的字母。任何幫助?試圖打破一個字符串,並扭轉它
我迄今爲止代碼:
import sys
str = raw_input("first middle last")
str.split();
我想編寫一個程序,將要求一個人的全名(第一,中間,最後),將打印(最後,中間,TSrif)。就像向後打印他們的名字,但是這些字母只能在他們的名字後面。我無法弄清楚如何翻轉單詞的順序而不用翻轉它們的字母。任何幫助?試圖打破一個字符串,並扭轉它
我迄今爲止代碼:
import sys
str = raw_input("first middle last")
str.split();
的str.split()
函數返回列表,它不會修改到位。所以,你想:
split_up = str.split()
(顯然split_up
是一個任意名稱,問題是,它是一個列表)
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'
>>> my_string = raw_input('?: ').split()
?: first middle last
>>> new_string = ' '.join(my_string[:0:-1] + [my_string[0][::-1]])
>>> new_string
'last middle tsrif'
>>> s = 'first middle last'
>>> L = s.split()
>>> L[0] = L[0][::-1]
>>> L
['tsrif', 'middle', 'last']
>>> print L[::-1]
['last', 'middle', 'tsrif']
讓我們假設你有一個變量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]
首先顛倒列表。然後反向最後一個字符串列表
my_list = string.split()
my_list = list(reversed(my_list))
my_list[2] = my_list[2][::-1]
print my_list
不要使用海峽爲變量。
這應該工作
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])
1.不要將其命名爲'str'變量2'str.split'不是就地,你將不得不將其存儲在另一個變量 –
感謝你的小費!我今天開始編程,我很感激任何提示。 – user3721227