我想单独打印(然后写入文件)另一个列表中的列表项。如果没有匹配的项目,那么我希望打印“无”。我的程序有时间限制,因此我想对此快速且轻松地解决,最好在0.1秒以内。
我有一个名为joinedComb的列表,我想单独打印joindComb中我尝试过的另一个名为字典的列表中的所有项目
for i in joinedCombs:
if i in dictionary:
endResult.append(i)
fout.write(i+'\n')
if endResult == []:
fout.write('NONE\n')
我希望它打印出这样的内容:
GREG
GEKA
GENO
要么
NONE
endResult = [i for i in joinedCombs if i in dictionary]
fout = '\n'.join(endResult) if any(endResult) else 'NONE'
如果您愿意,可以不循环地进行。您可以使用两组逻辑组合,但不要期望缩短执行时间。
endResult = set(joinedCombs).intersection(set(dictionary.keys()))
谢谢您的回答。但是,评分员仍说该程序运行时间过长(1.393秒)。您是否有更快的方法,没有循环?
@MathWiz请提供关于大小的信息
joinedCombs
和dictionary
以及一些示例值。joinCombs的值是否重复?joinCombs的长度为3 ^ 12个术语(其庞大),而字典的长度为5000个术语。任何一个都没有重复条款
请访问我在其中发布了更具体问题的网站:stackoverflow.com/questions/56874022/…
@MathWiz 3 ^ 12列表的大小不是很大,我很惊讶您的执行时间这么长。我创建了具有给定大小的示例列表和示例字典,执行时间低于0.05秒。请从已编辑的答案中检查解决方案。也许它将以任何方式帮助您。