在“大_文件.txt“,我想提取”用户A“的UID,该UID与“Small”中的UID不重复_文件.txt”。我写了下面的代码,但它似乎永远不会停止运行。那么,如何加快这一进程呢?非常感谢:)
import json
uid_available = []
linesB = []
for line in open('E:/Small_file.txt'):
line = json.loads(line)
linesB.append(hash(line['uid']))
for line in open('E:/Big_file.txt'):
line = json.loads(line)
if hash(line['uid']) not in linesB and line['user'] == 'User A':
uid_available.append(line['uid'])
这是大的格式_文件.txt(有1000万行):
{'uid': 111, 'user': 'User A'}
{'uid': 222, 'user': 'User A'}
{'uid': 333, 'user': 'User A'}
{'uid': 444, 'user': 'User B'}
{'uid': 555, 'user': 'User C'}
{'uid': 666, 'user': 'User C'}
这是小号的格式_文件.txt(有几百万行):
{'uid': 333, 'user': 'User A'}
{'uid': 444, 'user': 'User B'}
{'uid': 555, 'user': 'User C'}
我期望的结果是:
111
222
在列表中查找项目需要
O(n)
时间。如果使用dict
或set
,可以将其改进为O(1)
。你知道吗您可以做的最短修改是:
或者做对了
相关问题 更多 >
编程相关推荐