如何初始化 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 个计数器,例如 c
和 d
首先我想为 b
的所有元素初始化唯一 ID 并将其存储在文件中,
然后我想参考给予b
的ID将相同的ID初始化为c
和d
并将它们也存储在文件中。
我只知道如何存储计数器和如何检索它。现在我的计数器有一个元素列表及其频率。我想要做的是为我的主列表中的每个元素初始化一个唯一的 ID,在这种情况下是 b
我想将它存储在一个文件中,如 :
ID 词频
1 个 10
2 c 8
3 b 7
4天2
同理。
然后我想在 c
和 d
初始化这个 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'
正在将唯一 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 个计数器,例如 c
和 d
首先我想为 b
的所有元素初始化唯一 ID 并将其存储在文件中,
然后我想参考给予b
的ID将相同的ID初始化为c
和d
并将它们也存储在文件中。
我只知道如何存储计数器和如何检索它。现在我的计数器有一个元素列表及其频率。我想要做的是为我的主列表中的每个元素初始化一个唯一的 ID,在这种情况下是 b
我想将它存储在一个文件中,如 :
ID 词频
1 个 10
2 c 8
3 b 7
4天2
同理。
然后我想在 c
和 d
初始化这个 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'