【发布时间】:2017-08-02 08:02:43
【问题描述】:
我正在学习 python 并尝试使用 web.py 创建一个电影集供我自己使用。
我有两个列表
movies_all = ["abc","xyz","opq"]
movies_watched = ["xyz","pqr","cba"]
我想要做的是在最终输出中打印所有 movies_all 行。 这样如果movies_watched列表中有匹配项,则输出Yes或No。例如,在上面只有“xyz”是常见的。
最好输出应该是单一数据类型,例如“列表列表”或字典或元组列表等。 其目的是在 html 表格中显示输出,如下所示。
输出:
================= 电影|观看 | ------|----------| abc |没有 | xyz |是的 | opq |否 |输出中的表格只是为了提高可读性,实际上不是必需的。
我已经尝试过了,但无法输出所需的结果
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))
【问题讨论】:
-
你应该发布你自己的编码尝试,否则你的问题会吸引反对票。提示:要有效地做到这一点,
movies_watched应该是set。 -
使用某人发布的答案然后执行:import pandas as pd, d = {'movies':movies}, df = pd.DataFrame(data=d)
-
@PM2Ring 感谢您的通知,实际上是我的第一篇文章,添加了我失败的代码尝试
-
@Bharat 使用答案和我对答案的评论并完成
-
另外,您的循环会创建
result,但您不会将它用于任何事情。但是感谢您发布一些代码。您的最终for循环循环了 4 次,但列表中只有 3 部电影,因此代码将在最后一个循环中以IndexError崩溃。