3 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
我可以給你這樣的東西:
我創(chuàng)建的文件:
1,hello
12,idontknow
33,foo
3,bar
0,fooo
7,baaar
這是代碼:
import csv
def csv_sort(file_path):
opened_file = open(file_path, 'r')
data = list(csv.reader(opened_file, delimiter = ','))
return sorted(data, key = lambda x: int(x[0]))
if __name__ == '__main__':
results = csv_sort('path_to_your_file')
print(results)
結(jié)果:
[['0', 'fooo'], ['1', 'hello'], ['3', 'bar'], ['7', 'baaar'], ['12', 'idontknow'], ['33', 'foo']]

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
您正在嘗試將 int() 映射到列表“scores”,而不是映射到您要轉(zhuǎn)換為 int 的項(xiàng)目。
改變
scores = list(map(int, scores))
list.sort(scores, , reverse=True)
到:
scores = list(map(lambda l:[int(l[0]), l[1]], scores)
list.sort(scores, key=lambda l:l[0], reverse=True)
它應(yīng)該工作。
除此之外,創(chuàng)建“分?jǐn)?shù)”的循環(huán)是不必要的,因?yàn)槟呀?jīng)將 csv 轉(zhuǎn)換為行中的列表:
csv = list(csv.reader(open("HighScores.csv")))
只需將變量名從“csv”更改為“scores”,即可刪除循環(huán)。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
我建議使用 Pandas 庫(kù)來處理你的 csv。pandas.read_csv() 將讀取您的 csv 文件,然后您可以使用函數(shù) sort_values(by='name of the column') 對(duì)數(shù)據(jù)集進(jìn)行排序。
添加回答
舉報(bào)