python - 比较两个列表

时间:2017-08-02 08:02:44

标签: python compare

我正在学习python并尝试使用web.py为自己创建一个电影收藏。

我有两个列表

movies_all = ["abc","xyz","opq"]
movies_watched = ["xyz","pqr","cba"]

我想要做的是在最终输出中打印所有的movies_all行。 这样如果列表中有匹配的movies_watched,则输出Yes或No.例如,仅在上面" xyz"很常见。

最好输出应该是单一数据类型,例如"列表列表"或字典或元组列表等 目的是在html表中显示输出,如下所示。

输出:

================
Movies| Watched |
------|---------|
abc   |No       |
xyz   |Yes      |
opq   |No       |

输出表仅用于提高可读性,实际上不是必需的。

我试过这个但是无法输出所需的结果

 matches=[]
 print "start comparing"
 for item_a in movies_all:
     for item_b in movies_watched:
         if item_a == item_b:
             matches.append(item_a)
             matches.append("Yes")
             #result=zip(movies_all,matches) -> Tried this but not getting desired output

 for i in range(4):
     print("%s, %s" % (movies_all[i],matches))

1 个答案:

答案 0 :(得分:1)

使用for...in...迭代一个列表,并使用in与其他列表进行比较。通过创建空字典并为每个新键分配值来构建字典。在您的示例中,您将拥有movies_all中每个项目的键。

movies={}
for movie in movies_all:
    if movie in movies_watched:
        movies[movie] = "yes"
    else:
        movies[movie] = "no"