【问题标题】:How do I individually print items of a list that are in another list in python如何单独打印python中另一个列表中的列表项
【发布时间】:2019-07-03 15:57:40
【问题描述】:

我想单独打印(然后写入文件)另一个列表中的列表项。如果没有匹配的项目,那么我希望打印“NONE”。我的程序有时间限制,所以我想要一个快速简单的解决方案,最好在 0.1 秒内。

我有一个名为joinedComb 的列表,我想单独打印joinedComb 中位于另一个名为dictionary 的列表中的所有项目 我试过了

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

【问题讨论】:

    标签: python list python-3.6


    【解决方案1】:
    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 请提供有关joinedCombsdictionary 大小的信息以及一些示例值。 joinCombs 的值是否重复?
    • joinedCombs 的长度为 3^12 个术语(其巨大),而字典的长度为 5000 个术语。任何一个都没有重复的术语
    • 请查看我发布了更具体问题的网站:stackoverflow.com/questions/56874022/…
    • @MathWiz 3^12 列表大小不是很大,我很惊讶您的执行时间如此之长。我创建了给定大小的示例列表和示例字典,执行时间低于 0.05 秒。请从编辑的答案中检查解决方案。也许它会以任何方式帮助你。
    猜你喜欢
    • 2020-02-12
    • 2012-08-24
    • 2018-12-22
    • 2020-08-17
    • 2022-12-31
    • 2016-12-16
    • 2023-01-03
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多