我有两套
tf_ar=[0.0,0.032,0.235,0.65,0,....] and
idf=[1.2,1.6,0.68,....]
我必须对idf和tf_ar进行乘法,以便idf中的每个项乘以tf_ar中的六个项。这意味着
(number of terms in tf_ar)= [6*(number of terms in idf)]
我应该如何为它提供条件,以便它继续循环tf_ar中的下六个术语?
j=0
for term in idf:
i=0
for tf in tf_ar:
if i==6:
break
else:
tf_idf+=str(float(tf)* idf[j])+','
i+=1
tf_idf=tf_idf.strip()+'\n'
j+=1
例如:
tf_ar=[1,2,3,4,5,6,7,8,9,10,11,12...]
idf=[A,B,...]
我希望结果为
tf_idf=[1A,2A,3A,4A,5A,6A,7B,8B,9B,10B,11B,12B...]
我希望idf应该乘以tf_ar的六个术语,并且应该继续使用下一个术语。
答案 0 :(得分:2)
似乎这样的事情可以帮到你:
[a * b for a in idf for b in tf_ar]
答案 1 :(得分:0)
这可能会给你一些想法,虽然我确定你的具体用例不是100%正确,因为你发布的代码有点不清楚。但是你应该能够根据自己的需要进行调整。
result = []
for ii, term in enumerate(idf):
result.append(0)
for tf in tf_ar[6*ii:6*(ii+1)]:
result[-1] += term * tf
关键的想法是“枚举”以获得整数索引以与idf
上的迭代一起进行,然后使用[{1}}的[x:y]制作“切片”,其宽度为6每个