Python,从原始表单中排序我的列表

And*_*son 2 python sorting list

我一直在寻找,但没有发现任何符合我要求的线程.我正在尝试做的是从3个不同的选项排序列表,按时间顺序排列(原始列表),按字母顺序排列和反向排序.所有这些,我已经想到了,例如这里是我的清单:

movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def print_movies():
    global movies
    j = 0
    while j < 1:
        print("Hur vill du skriva ut filmerna?")
        print("1. Kronologisk\n2. Alfabetisk stigande\n3. Alfabetisk fallande")
        choice = input()
        if int(choice) == 1:    
            print("Filmer i samlingen just nu:\n")
            for i in movies:
                print(i)
                j = j+1
        elif int(choice) == 2:
            print("Filmer i samlingen just nu:\n")
            movies.sort()
            for i in movies:
                print(i)
                j = j+1
        elif int(choice) == 3:
            print("Filmer i samlingen just nu:\n")
            movies.sort(reverse=True)
            for p in movies:
                print(p)
                j = j+1
        else:
            print("Not a valid option, try again")
Run Code Online (Sandbox Code Playgroud)

排序和一切工作正常,但当我例如按:2,按字母顺序排序,它打印出字母顺序,当我按下:1下次,它不会回到按时间顺序.所以选项2和3工作正常,它可以从最高的字母字符排序到反向排序,但它不会回到它原来的列表形式,我的意思是:

["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
Run Code Online (Sandbox Code Playgroud)

当我按下:1时,它仍然在我之前输入的选项2或3中排序.

非常感谢这里的帮助.谢谢!

Mob*_*erg 5

movies.sort()修改列表.所以你将失去原来的订单.

试试吧for m in sorted(movies):.