我试图看看两个电影之间的电影是否相同,为此,我想将Actors作为标准之一进行比较。但是,演员通常在不同页面上的列表不同。例如:
在这个页面上,https://play.google.com/store/movies/details?id=cSdcb2KOH74,演员被列为“Mikhail Galustyan,Danny Trejo,GuillermoDíaz,Oleg Taktarov,Kym Whitley,Christopher Robin Miller,Robert Bear,Vladimir Yaglych,Josh McLerran”
此页面为http://www.imdb.com/title/tt2167970/,演员为“Ivan Stebunov,Ingrid Olerinskaya,Vladimir Yaglych”
之前,我正在进行一场非常粗略的比赛:
if actors_from_site_1[0] == actors_from_site_2[0]
但是,正如您从上述案例中可以看到的,这不是一个好技术。看一部电影中的演员是否与其他电影相匹配,会有什么更好的技巧呢?
答案 0 :(得分:2)
您可以检查两组演员的集合交叉点的长度。
if len(set(actors_from_site_1).intersection(set(actors_from_site_2))):
或者您可以执行以下操作:
if any(actor in actors_from_site_1 for actor in actors_from_site_2):
答案 1 :(得分:1)
如果所有列表都是逗号分隔的actor名称,请用逗号分隔它们,小写名称,然后获取交集:
actors_from_site_1 = set(actors_from_site_1.lower().split(','))
actors_from_site_2 = set(actors_from_site_2.lower().split(','))
common_actors = actors_from_site_1 & actors_from_site_2
答案 2 :(得分:1)
尝试:
similaractors = []
for actor in actors_from_site_1:
if actor in actors_from_site_2:
similaractors.append(actor)
然后,您有similaractors
作为他们共享的所有演员的列表。调用len(similaractors)
获取相似演员的数量,然后您可以print(similaractors)
并使用列表执行其他所有操作。