您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

seq 0 3 100 > 3k.txt
seq 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)
            break
print(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
python 2022/1/1 18:37:25 有227人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶