Python程序从行中删除重复条目

我建立了以下功能来对行进行排序,然后对每行进行排序,它将行内的内容排序为数值。


像这样的行:


67:1 45:1 67:1 89:1

31: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

我一直在搜索和试用/(很多)错误,但是没有运气。


慕妹3242003
浏览 199回答 2
2回答

狐的传说

使用集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')

凤凰求蛊

希望这会有所帮助:#!/usr/bin/pythonwith 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')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python