我一直在尋找,但還沒有找到任何符合我要找的線程。我正在嘗試做的是按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