【问题标题】:How to compare two lists and write the differences to a file? Python3如何比较两个列表并将差异写入文件? Python3
【发布时间】:2019-01-18 00:23:51
【问题描述】:
masterlist = ["subdomain.com", "subdomain2.com", "subdomain3.com", "subdomain4.com","subdomain5.com", "subdomain6.com"]

originaldomains = ["subdomain.com", "subdomain2.com", "subdomain32.com", "subdomain43.com","subdomain55.com", "subdomain6.com"]

将两个列表的差异写入文件。

   # Combine these into a masterlist
    masterlist = list1 + list2


    if os.path.exists('masterlist'):
        print('Overwriting masterlist')
        with open('masterlist', 'r') as f:
            originalsubs = f.readlines()

我的主列表为 var1,原始子列表为 var2。

我想在我的 if 语句的相同代码块中写出差异(希望如此)?可以的话?

【问题讨论】:

  • 对不起,我在这里偷懒了,我正确地在值周围加上引号

标签: python-3.x list compare


【解决方案1】:

使用Python Sets 可以快速实现列表中的差异。值得了解这些是如何工作的。

masterlist = [ 'subdomain.com',  'subdomain2.com',  'subdomain3.com',  'subdomain4.com', 'subdomain5.com',  'subdomain6.com' ]
originaldomains = [ 'subdomain.com',  'subdomain2.com',  'subdomain33.com',  'subdomain44.com', 'subdomain5.com',  'subdomain6.com' ]

# get the differences
master_set   = set( masterlist )
original_set = set( originaldomains )
difference_set = master_set.symmetric_difference( original_set ) 

# write to a file
fout = open( "diff.txt", "wt" )
for item in difference_set:
    fout.write( item + "\n" )
fout.close()

我故意不按照“完成的家庭作业”标准来写这个。请阅读链接的文档,并使用它来理解代码。然后编写自己的解决方案。

【讨论】:

    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2021-10-03
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多