为Pickle's Counter的输出初始化唯一ID,并将其存储在文件中并检索以供使用。
在MySQL中,您可以初始化主键并将其用作Forigen键。我想在这里使用文件系统做同样的事情。
a = ['a','a','a','a','b','a','b','a','b','a','b', 'a','b','a','b','a','b','c','c','c','c','c','c','c ','c','d','d','e']
b =计数器(a)
b计数器({'a':10,'c':8,'b':7,'d':2,'e':1})
b
中有83,000个元素c计数器({'b':3,'d':1,'e':1})
d计数器({'c':4,'b':2,'d':1})
c
和d
首先,我想为b
的所有元素初始化唯一ID,并将其存储在文件中,
然后,我要参考给c
的ID,将相同的ID初始化为d
和b
,并将它们也存储在文件中。
我只知道如何存储计数器以及如何检索它。现在,我的计数器有一个元素列表及其频率。我想做的是为我的主列表的每个元素初始化一个唯一的ID,在这种情况下为b
,我想将其存储在一个文件中:
1 a 10
2 c 8
3 b 7
4 d 2
很明智。
然后我想在c
和d
上初始化此ID,例如:
对于c
3 b 3
4 d 1
以此类推
对于d
2 c 4
3 b 2
4 d 1
答案 0 :(得分:0)
第一个将每个 term 映射到其 id 的make词典 然后使用字典制作所需的列表:
from collections import Counter
a=['a','a','a','a','b','a','b','a','b','a','b','a','b','a','b','a','b','c','c','c','c','c','c','c','c','d','d','e']
b=['a','a','b','a','b','a','b','a','b','d','e']
aCounter=Counter(a)
bCounter=Counter(b)
v=sorted(aCounter.keys()|bCounter.keys())
idDict={item:i for i,item in enumerate(v) }
bresult=[(idDict[item[0]],item[0],item[1]) for item in bCounter.items()]
aresult=[(idDict[item[0]],item[0],item[1]) for item in aCounter.items() ]
print(bresult)
print(aresult)
输出:
[(0,'a',5),(1,'b',4),(3,'d',1),(4,'e',1)]
[(0,'a',10),(1,'b',7),(2,'c',8),(3,'d',2),(4,'e',1) ]
联合使用|来执行。操作员。使用已排序将id = 0分配给'a'