我建立了以下功能來對行進行排序,然后對每行進行排序,它將行內(nèi)的內(nèi)容排序為數(shù)值。像這樣的行:67:1 45:1 67:1 89:131:1 89:5 45:1 23:1 代碼:with open("SVM/svm-pos-train.txt") as f, open("SVM/svm-pos-train2.txt", 'w') as out: for line in f: line = line.split() line.sort(key = lambda x: int(x.split(':')[0])) out.write(" ".join(line) + '\n')我該如何編輯它,這樣也可以從行中刪除重復項,如下所示: 45:1 67:1 89:1 23:1 31:1 45:1 89:1我一直在搜索和試用/(很多)錯誤,但是沒有運氣。
2 回答

狐的傳說
TA貢獻1804條經(jīng)驗 獲得超3個贊
使用集
line = line.split()
line = list(set(line))
set 返回唯一元素的無序集合,然后將其轉換回列表,然后對列表進行排序。
編輯:
line = line.split()
line = list(set(line))
out.write(" ".join(sorted(line, x: (int(x.split(':')[0]), int(x.split(':')[1])))) + '\n')

鳳凰求蠱
TA貢獻1825條經(jīng)驗 獲得超4個贊
希望這會有所幫助:
#!/usr/bin/python
with open("d1.txt") as f, open("d2.txt", 'w') as out:
for line in f:
fields = line.split()
set_ = set(fields)
list_ = list(set_)
list_.sort()
out.write(" ".join(list_) + '\n')
添加回答
舉報
0/150
提交
取消