2014-02-11 70 views
-4

如何創建一個程序來提示用戶輸入列表,然後讓程序反轉該列表並將其打印給用戶。這種反轉需要手動,而不是使用reverse()函數。到目前爲止,我有...如何創建一個程序來提示用戶輸入一個列表,然後讓程序反轉列表並將其打印給用戶

def main(): 
    print("This program will reverse your list!") 
    list = [] 
    userlist = input("Enter your list:") 
    list.append(userlist) 
    reverselist = userlist[::-1] 
    print("Your list in reverse is: ", reverselist) 
    input ("Press enter to close program") 
main() 

它的工作原理,但它不保留一個列表,它更多的是一個字符串。如果你進入蘋果香蕉它吐出ananab elppa。

+0

嗯...'input'永遠只能產生一個字符串。所以在這方面它似乎按預期工作。 – Makoto

+0

這是python 3嗎? – geoffspear

+3

呃...它看起來像一個字符串,因爲這就是你正在閱讀的內容。把它翻譯成清單是你的工作。例如,你可以在字符串中使用'split'方法。或者你可以分別詢問每個元素,或... –

回答

0

您通過做userlist[::-1]顛倒了字符串,這就是爲什麼banana被讀爲ananab。如果按空格分隔並翻轉單詞,你應該怎麼做。

嘗試改變:

userlist = input("Enter your list:") 
list.append(userlist) 
reverselist = userlist[::-1] 

到:

userlist = input("Enter your list:") 
reverselist = " ".join(reversed(userlist.split()))  
1
def main(): 
    print("This program will reverse your list!") 

    # get a list of strings 
    items = [] 
    while True: 
     s = input("Next item (or <Enter> to quit): ") 
     if s: 
      items.append(s) 
     else: 
      break 

    # make a reversed copy of the list 
    items_len = len(items) 
    smeti = [0] * items_len 
    for i,val in enumerate(items) 
     smeti[items_len - i - 1] = val 

    print("Your list in reverse is: {}".format(smeti)) 
    input("Press enter to close program") 

if __name__=="__main__": 
    main() 
+0

'smeti'爲反轉項目! LOL +1 – dawg

0

一個有用的 '手動' 成語扭轉列表是一個while循環:

>>> li 
[0, 1, 2, 3, 4] 
>>> il=[] 
>>> while li: 
... il.append(li.pop()) 
... 
>>> il 
[4, 3, 2, 1, 0] 

所以你程序是:

def main(): 
    print("This program will reverse your list!") 
    userlist = input("Enter your list separated by spaces:") 
    li=userlist.split() 
    reverselist=[] 
    while li: 
     reverselist.append(li.pop()) 
    print("Your list in reverse is: ", reverselist) 

main() 

運行時間:

This program will reverse your list! 
Enter your list separated by spaces:apple banana peach 
Your list in reverse is: ['peach', 'banana', 'apple'] 
0
list = [] 
def reverselyst(list): 
    print ("Please enter list values one after the other or press space to stop:") 
    while True: 
     userinput = input() 
     if userinput != ' ': 
      list.append(userinput) 
     else: 
      print (list) 
      break 
    print("the reverse of list is" + str(list[-1: :-1])) 
reverselyst(list) 
相關問題