我,我2列出:
l = [['red','a1',1],['red','a2',1],['blue','a3',1],['yellow','a4',1]]
和
k = [['red','a2',1],['blue','a3',1],['yellow','a4',1]]
所以我想要返回这样的内容:
result = [0, 1, 1, 1]
很抱歉我已经练习了一下列表理解!!
我的职能:
def vectors(doc1,doc2,consulta):
res=[]
r = doc1 + doc2 + consulta
for e in r:
for i in doc1:
if i[0] == e[0]:
i[2] = i[2] + 1
else:
i[2] = 0
return res.append(i[2])
顺序无关紧要,重要的是比较。
最诚挚的问候!
答案 0 :(得分:3)
效率低但容易:
result = [x in k for x in l]
高效(对于大k
)但稍微复杂一些:
kset = set(tuple(x) for x in k)
result = [tuple(x) in kset for x in l]
答案 1 :(得分:1)
检查一下:
>>> result = [1 if li in k else 0 for li in l]
>>> result
[0, 1, 1, 1]