如何从最新用户输入到最后一个对列表进行排序



嘿伙计们,我希望用户使用输入创建的列表按照从最新条目到第一个条目的顺序打印。

我现在的代码为一些帖子做了这件事,然后它以一些奇怪的顺序打印列表

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()

当您排序时,它将按字母顺序放置输入。 如果只想反转列表,请使用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()

在您的示例中可能不起作用的几件事:

  • 您不需要sort(),但要颠倒列表的顺序。为此,您可以使用列表切片
  • 您不应将用户输入的变量命名为status,这与函数同名
def status():
all_status_updates = []
while True: 
stat = input("Type Status Update Here...n")
if stat != "exit":
all_status_updates.append(stat)
print(all_status_updates[::-1])
elif stat == "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

最新更新