我是 Python 新手,我正在嘗試對整數串列進行排序。
輸入來自包含整數行的文本檔案。我將這些行轉換為整數串列,然后嘗試使用 .sort() 對串列進行排序,首先是最小整數,最后是最大整數。
我有兩個除錯列印來檢查資料。看起來,整數串列在 .sort() 之前是可以的,但在排序之后,串列包含廢話:重復的整數似乎與正在排序的串列無關。
我的代碼:
file_name = input("Give the name of file to process: ")
file = open(file_name, 'r', encoding="utf-8")
line_list = file.readlines()
numbers = []
for line in line_list:
line = line.strip()
numbers.append(int(line))
print(numbers)
numbers.sort()
print(numbers)
這是print(numbers)之前的開始.sort():
[53, 86, 42, 66, 79, 34, 77, 39, 89, 78, 52, 80, 36, 80, 44, 54, 43, 39, 32, 57, 88, 41, 76, 83, 55, 33, 44, 60, 63, 90, 39, 44, 71, 68, 86, 74, 82, 39, 80, 35, 36, 57, 68, 70, 32, 68, 50, 50, 55, 71, 83, 62, 42, 68, 39, 47, 80, 66, 53, 55, 56, 53,
91, 83, 34, 54, 66, 76, 84, 30, 69, 43, 31, 90, 83, 68, 69, 76, 39, 59, 43, 69, 47, 75, 67, 68, 33, 42, 74, 87, 79, 54, 72, 31, 60, 64, 38, 40, 48, 50, 46, 78, 84, 30, 39, 62, 85, 73, 72, 75, 63, 40, 45, 72, 43, 62, 86, 36, 37, 67, 35, 77, 46, 68, 80, 91, 75, 34, 61, 75, 56, 91, 82, 53, 37, 59, 69, 68, 44, 40, 50, 39, 35, 36, 57, ...]
之后.sort()
[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, ...]
我省略了其余的列印,因為檔案很大。但是,我確信第二個串列是錯誤的,因為排序后的最大數字是 45。
我也用 numbers = sorted(numbers) 進行了嘗試,它產生了一些相似的結果。
此外,我嘗試用一??個簡短的整數串列替換數字,例如 [23,13,4,65,2],然后排序運行良好,如幾個問題和檔案中所述。
我認為該錯誤必須與我的資料有關。也許從檔案中讀取會帶來一些弄亂 .sort() 的人工制品,或者它可能是什么?
我知道整個資料都與這個問題相關,但它太大而無法適應這個問題,印刷品也是如此。
有人可以回答這些資訊嗎?
uj5u.com熱心網友回復:
輸入:
53
86
42
66
79
34
77
39
89
利用sorted(numbers).
numbers = []
with open('input.txt', 'r') as f:
lines = f.readlines()
for line in lines:
line = line.strip()
numbers.append(int(line))
print(numbers)
print(sorted(numbers))
輸出:
[53, 86, 42, 66, 79, 34, 77, 39, 89, 78]
[34, 39, 42, 53, 66, 77, 78, 79, 86, 89]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/529593.html
標籤:Python列表排序整数
