Python 如何将列表从最新用户输入排序到最后一个

Python 如何将列表从最新用户输入排序到最后一个,python,python-3.x,list,user-input,Python,Python 3.x,List,User Input,嘿,伙计们,我想让用户创建的列表以从最新条目到第一条条目的顺序打印 我现在的代码只在几篇文章中使用,然后以奇怪的顺序打印列表 all_status_updates = [] def status(): while True: status = input("Type Status Update Here...\n") if status != "exit": all_status_updates.append(status)

嘿,伙计们,我想让用户创建的列表以从最新条目到第一条条目的顺序打印

我现在的代码只在几篇文章中使用,然后以奇怪的顺序打印列表

all_status_updates = []


def status():
    while True: 
        status = input("Type Status Update Here...\n")
        if status != "exit":
            all_status_updates.append(status)
            all_status_updates.sort(reverse = True) 
            print(all_status_updates)
        elif status == "exit":
            break
status()


以下几点在您的示例中可能不起作用:

  • 您不需要
    排序()
    ,只需要颠倒列表的顺序。为此,可以使用列表切片
  • 不应为用户输入的变量命名
    状态
    ,该变量与函数的名称相同
输出

Type Status Update Here...
a
['a']
Type Status Update Here...
b
['b', 'a']
Type Status Update Here...
c
['c', 'b', 'a']
Type Status Update Here...
d
['d', 'c', 'b', 'a']
Type Status Update Here...
e
['e', 'd', 'c', 'b', 'a']
Type Status Update Here...
f
['f', 'e', 'd', 'c', 'b', 'a']
Type Status Update Here...
exit

当您对输入进行排序时,它会将输入按字母顺序排列。 如果您只想反转列表,请使用
myList.reverse()
编辑:仅在末尾反转以获得预期结果

all_status_updates = []


def status():
    while True: 
        status = input("Type Status Update Here...\n")
        if status != "exit":
            all_status_updates.append(status)
            print(all_status_updates)
        elif status == "exit":
            break
    all_status_updates.reverse()
    print(all_status_updates)

status()

这不会改变什么吗?非常感谢西蒙!我会再次感谢你的帮助你看过问题了吗?“我希望用户使用输入创建的列表按从最新条目到第一条条目的顺序打印”。@hourtboy这并不能回答您的问题。它实际上不会有什么区别(除了节省几个cpu周期)。我很抱歉,我确信我的解决方案可以工作,所以我没有测试它。现在我做了,现在它应该显示正确的行为。你能给我们看一下输出吗?你对字符串排序感到困惑吗?这能回答你的问题吗?这不起作用,相反,它做的是最新的条目,它旁边是第一个条目,因此我在发布之前尝试了这一点。在每次迭代中反转列表将不会显示所需的结果。你们都是对的,我在结束时仅用反转编辑了我的答案一次
all_status_updates = []


def status():
    while True: 
        status = input("Type Status Update Here...\n")
        if status != "exit":
            all_status_updates.append(status)
            print(all_status_updates)
        elif status == "exit":
            break
    all_status_updates.reverse()
    print(all_status_updates)

status()