栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在一个文件中查找不在python中另一个文件中的所有数字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在一个文件中查找不在python中另一个文件中的所有数字

如果你想逐行读取文件行,因为你没有那么多的内存,您可以根据需要与国际热核实验堆,如果你的文件是基于线做线性解决方案,否则看这个:

首先,您可以在终端中执行以下操作以生成一些测试文件:

seq 0 3 100 > 3k.txtseq 0 2 100 > 2k.txt

然后运行以下代码:

i1 = iter(open("3k.txt"))i2 = iter(open("2k.txt"))a = int(next(i1))b = int(next(i2))aNotB = []# bNotA = []while True:    try:        if a < b: aNotB += [a] a = int(next(i1, None))        elif a > b: # bNotA += [a] b = int(next(i2, None))        elif a == b: a = int(next(i1, None)) b = int(next(i2, None))    except TypeError:        if not b: aNotB += list(i1) break        else: # bNotA += list(i1) breakprint(aNotB)

输出:

[3、9、15、21、27、33、39、45、51、57、63、69、75、81、87、93、99]如果您同时想要aNotB和bNotA的结果,则可以取消注释这两个线。

时间与Andrej Kesely的答案进行比较:

$ seq 0 3 1000000 > 3k.txt$ seq 0 2 1000000 > 2k.txt$ time python manual_iter.py        python manual_iter.py  0.38s user 0.00s system 99% cpu 0.387 total$ time python heapq_groupby.py        python heapq_groupby.py  1.11s user 0.00s system 99% cpu 1.116 total


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号