我已通過csv文件進行排序,並將其轉換爲列表列表。我現在需要根據特定索引對列表進行排序。列表一次排序正確,然後後續排序不正確
下面的代碼塊的工作:
def highestPoint(copiedList):
copiedList.sort(key=lambda x: x[2], reverse=True)
date = copiedList[0][0]
value = float(copiedList[0][2])
print("\nThe day where the stock reached its highest point is",
date, "with" " a value of {:,.2f}".format(value))
現在,我認爲我可以複製和粘貼代碼塊,替換在這兩個點的[2]
爲了對列表進行排序並打印結果。
顯然,print語句中的單詞與過程的名稱相同,但其他所有內容都相同。
我們有樣本輸出,而且我的答案也不一樣。第一個代碼有效,但其他代碼沒有。
每個代碼塊都是自己的程序,每次傳遞copiedList
。 copiedList
只是原始dataList
的淺表副本。
使用'最大()'和'min()'而不是'sort()'會加速你的編碼。他們有相同的「關鍵」論點。 –
我將'copiedList.sort(key = lambda x:x [2])'改爲'copiedList = max(key = lambda x:x [2]'並且它產生了日期爲1.00的整數2,應該是,我做錯了什麼? – Brett
是的,如果你只想得到最大值,你根本不需要修改'copiesList',你只需要:'maxentry = max(copiedList,key = lambda x:注意:如果你轉換爲'float',那麼key函數可能會更好,因爲'lambda x [2])','date = maxentry [0]','value = float(maxentry [2])' :float(x [2])'to match。 – ShadowRanger