我一直在寻找,但还没有找到任何符合我要找的线程。我正在尝试做的是按3种不同的选项进行排序,Chronological(原始列表),Alphabetical和Reversed排序。 所有这些,我已经想通了,比如这里是我的清单:Python,从我们的原始形式排序我的列表
movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
这里是我的代码:
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")
的排序,一切工作正常,但是当我如按: 2,按字母排序,按字母顺序打印,当我按下:1时,下一次,它不会回到按时间顺序排列。 所以选项2名3的作品很好,它可以从最高的字母字符排序在逆排序,但它不会回到它原来的列表形式,并通过我的意思是:
["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
当我按下:1,其仍然按照我之前输入的选项2或3排序。
真的很感谢这里的帮助。 谢谢!
所以,你怎么知道他们是按时间顺序?你告诉Python对列表进行排序,所以原始顺序*不见*。如果您需要原始订单,请保留从未排序的列表的副本,或将信息添加到您的数据以按时间顺序排序。 –
对不起,我的英文,按时间顺序我的意思是它在第一个列表中的顺序。列表中的原始顺序。 –
那是因为你正在排序'in place'。也就是修改原始列表。按时间顺序,你想保持原来的秩序。因此,对于选项2和3,不是'movies.sort',而是'new_movies = sorted(电影)'。选项1仍然可以从电影本身显示。 – algrebe