【问题标题】:How to create a program to prompt the user to enter a list, then have the program reverse the list and print it for the user如何创建一个程序来提示用户输入一个列表,然后让程序反转列表并为用户打印
【发布时间】:2014-02-11 00:52:44
【问题描述】:

如何创建一个程序来提示用户输入一个列表,然后让程序反转该列表并为用户打印它。这种反转需要手动进行,而不是使用 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。

【问题讨论】:

  • 嗯...input 只能产生一个字符串。所以在这方面它似乎按预期工作。
  • 嗯...它看起来像一个字符串,因为这就是您正在阅读的内容。将其翻译成列表是您的工作。例如,您可以为此使用字符串中的split 方法。或者你可以单独询问每个元素,或者...
  • 所以... mylist[::-1] 比 mylist.reverse() 更“手动”?
  • 很遗憾,您有一个名为 list 的变量。现在list()函数很难用了。

标签: python reverse


【解决方案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()

【讨论】:

  • smeti 用于反向项目!哈哈+1
【解决方案2】:

您通过执行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()))    

【讨论】:

    【解决方案3】:

    一个有用的“手动”反转列表的习惯用法是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']
    

    【讨论】:

      【解决方案4】:
      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)
      

      【讨论】:

        猜你喜欢
        • 2021-01-18
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 1970-01-01
        • 2017-09-13
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多