如何从中删除重复项?

时间:2016-03-15 15:21:07

标签: python

我正在将这些值写入文件:

(u'fresh', 4.3557350075853982)  
(u'fresh', 6.6629604801359461)
(u'focus', 6.4398169288217364)


p= zip(vectorizer.get_feature_names(), idf)        #('object' , score)
with codecs.open("scores.txt","a") as t:
        for x in p:
            if not x:
                print>>t, x

我要做的是删除写入文件的重复项。所以我试图检查x是否已经存在,而不是再次写入。我怎么能这样做,因为它是一个压缩组件。

1 个答案:

答案 0 :(得分:0)

试试这个......

"""(u'fresh', 4.3557350075853982)  
(u'fresh', 6.6629604801359461)
(u'focus', 6.4398169288217364)"""


p= zip(vectorizer.get_feature_names(), idf)        #('object' , score)
outputted = set()
with codecs.open("scores.txt","a") as t:
        for x in p:
            if x[0] in outputted: continue
            print>>t, x
            outputted.add(x[0])

这假设您要删除仅仅'对象'的重复项 - 如果您认为重复项与(对象,分数​​)对完全相同,请使用{{1}替换答案中的x[0] }

基本上它正在做的是,它跟踪你已经输出的对象/分数,并且不会重新输出先前为对象输出的对象/分数。