我在Python中對列表進行排序時遇到了問題。出於某種原因,它確實將列表排列在最高值上,但在該過程完成之後,該列表中的其他元素不再被排序。基於第一個整數對列表進行排序
我的代碼:
import csv
id_list = []
with open('source/to/file/output.csv', 'rt') as f:
reader = csv.reader(f, delimiter=',', quotechar='"')
for row in reader:
test = "177"
if test == row[0]:
id_list.append([row[2],row[1]])
generated_list = id_list[0], id_list[16], id_list[20]
print(generated_list)
print(sorted(generated_list))
打印的結果是:
-- (['17', '179'], ['5', '2641'], ['9', '3705']) # not sorted
-- [['17', '179'], ['5', '2641'], ['9', '3705']] # sorted
我會想到的是,排序方法將輸出:
-- [['17', '179'], ['9', '3705'], ['5', '2641']] # sorted
我做有問題?
你爲什麼期待? Python是**強類型**,它不會將字符串視爲數字。見例如http://stackoverflow.com/q/4836710/3001761一些替代品。 – jonrsharpe