我正在将这些值写入文件:
(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是否已经存在,而不是再次写入。我怎么能这样做,因为它是一个压缩组件。
答案 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]
}
基本上它正在做的是,它跟踪你已经输出的对象/分数,并且不会重新输出先前为对象输出的对象/分数。