python-3.x - 如何比较两个列表并将差异写入文件?Python3
问题描述
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 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()
我故意不把它写成“完成的家庭作业”标准。请阅读链接的文档,并使用它来理解代码。然后编写自己的解决方案。
推荐阅读
- sed - \n\nnd 应该做什么?
- python - Python - 一个简单的套接字脚本出错
- javascript - VeeValidate 不遵循我设置的规则
- vba - MSAccess VBA 在运行时启用/禁用快捷菜单上的项目
- python - 当想要在 python 中传递一个字符串作为哈希值时,我可以使用一个变量吗?
- mysql - 使用shell重定向mysql输出以提示
- javascript - 如何检查收据上是否有多个产品?
- arrays - 如何写入数组?它始终为空或为 0
- java - 我的解决方案“重复字符串匹配”中的问题
- amazon-advertising-api - 如何解决错误配置文件不支持 Amazon Ads API 上的产品广告