因为数据太多,可能计算机内存会是一个问题,所以就说一下解题思路吧
假设把数据全部读取进来,存成一个字典数组,那么代码可以这么写:
其中r1、r3是1和3的解,r2和r4是2和4的解的子集
lst = [{'key1':'value1','key2':'value2','key3':'value3','key4':'value4','key5':'value5'},{},{},{}]
r1 = set([l['key2'] for l in lst])
r3 = set([l['key4'] for l in lst])
for r in r1:
r2 = set([l['key4'] for l in lst if l['key2']==r])
for r in r3:
r4 = set([l['key2'] for l in lst if l['key4']==r])