如何初始化 Pickle Counter 列出一个唯一的 ID 并将其存储在文件中并检索它?

How to initialize Pickle Counter List a unique ID and store it in a file and retrive it?

正在将唯一 ID 初始化为 Pickle 计数器的输出并将它们存储在文件中并检索它们以供使用。

在MySQL中您可以初始化主键并将它们用作Forigen Key。我想在这里使用文件系统做同样的事情。

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})

我有 20,000 个计数器,例如 cd

首先我想为 b 的所有元素初始化唯一 ID 并将其存储在文件中,

然后我想参考给予b的ID将相同的ID初始化为cd并将它们也存储在文件中。

我只知道如何存储计数器和如何检索它。现在我的计数器有一个元素列表及其频率。我想要做的是为我的主列表中的每个元素初始化一个唯一的 ID,在这种情况下是 b 我想将它存储在一个文件中,如 :

ID 词频

1 个 10

2 c 8

3 b 7

4天2

同理。

然后我想在 cd 初始化这个 ID,例如:

对于c

term_id 字词频率

3 b 3

4 天 1

等等

对于d

term_id 字词频率

2 c 4

3 b 2

4 天 1

首先制作字典,将每个 term 映射到它的 id 然后使用字典制作所需的列表:

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)]

合并是使用|执行的操作员。使用 sorted 将 id=0 分配给 'a'