Python,将我的列表从其原始形式排序
我一直在搜索,但没有找到任何与我正在寻找的匹配的线程。我想做的是从3个不同的选项中排序,按时间顺序(原始列表)、字母顺序和反向排序。 所有这些,我都已经弄明白了,例如,下面是我的清单:Python,将我的列表从其原始形式排序,python,list,sorting,Python,List,Sorting,我一直在搜索,但没有找到任何与我正在寻找的匹配的线程。我想做的是从3个不同的选项中排序,按时间顺序(原始列表)、字母顺序和反向排序。 所有这些,我都已经弄明白了,例如,下面是我的清单: movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"] 这是我的代码: def print_movies(): global movies j = 0 while j < 1: pr
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")
当我按下:1时,它仍然在我之前输入的选项2或3中排序
我真的很感激这里的帮助。
谢谢 movies.sort()
修改列表。因此,您将失去原来的订单
尝试在已排序的(电影)中为m添加
:
。只需复制一份列表,因为movies.sort()
会修改为原始列表
copyMovies = movies[:]
下面是一个例子:
>>> movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
>>> copyMovies = movies[:]
>>> movies.sort()
>>> movies
['Beck', 'Fight club', 'Hamilton', 'Star Wars', 'Wallander']
>>> copyMovies
['Star Wars', 'Hamilton', 'Fight club', 'Beck', 'Wallander']
>>>
那么你怎么知道它们是按时间顺序排列的呢?您告诉Python对列表进行排序,因此原始顺序消失了。如果您需要原始顺序,请保留一份从未排序的列表副本,或者将信息添加到数据中以按时间顺序排序。对不起,我的英语是指时间顺序,我指的是它在第一个列表中的顺序。列表中的原始顺序。这是因为您正在就地排序
。也就是说,修改原始列表。对于按时间顺序排列的,您希望保持原始顺序。因此,对于选项2和3,不要使用movies.sort
,而是使用new\u movies=sorted(movies)
。选项1仍然可以从电影本身显示。排序
修改列表就位。您可以复制原始列表。当您需要“按时间顺序”的电影时,您可以返回复制的列表。为什么有全球电影?这与你的要求无关,但我很确定它在这方面没有任何作用。谢谢!谢谢你!
>>> movies = ["Star Wars", "Hamilton", "Fight club", "Beck", "Wallander"]
>>> copyMovies = movies[:]
>>> movies.sort()
>>> movies
['Beck', 'Fight club', 'Hamilton', 'Star Wars', 'Wallander']
>>> copyMovies
['Star Wars', 'Hamilton', 'Fight club', 'Beck', 'Wallander']
>>>