gpt4 book ai didi

python - 如何将由可打印字符组成的字符串映射到整数

转载 作者:行者123 更新时间:2023-12-02 02:15:02 25 4
gpt4 key购买 nike

我从古腾堡项目下载了一本书。对于编码项目,我需要将每个单词映射到正整数。单词中的字母都是可打印的,但本书使用的完整字母表大小为 75。这包括标点符号。

如何将每个单词映射到一个整数?相同的单词应始终映射到相同的整数,但不同的单词应映射到不同的整数。

输入是单词列表。例如:

'[', 'Emma', 'by', 'Jane', 'Austen', '1816', ']', 'VOLUME', 'I', 'CHAPTER',...

理想情况下,我希望避免仅仅为了映射第一个单词而读取整个输入。

最佳答案

from itertools import count

class WordMap:
def __init__(self):
self._words = {}
self._counter = count()

def add(self, word):
if word not in self._words:
self._words[word] = next(self._counter)

def __getitem__(self, word):
return self._words[word]

def __repr__(self):
return repr(self._words)

演示:

>>> wm = WordMap()
>>> wm.add('Emma')
>>> wm
{'Emma': 0}
>>> wm.add('test')
>>> wm
{'Emma': 0, 'test': 1}
>>> wm.add('Emma')
>>> wm
{'Emma': 0, 'test': 1}

可能需要根据您的用例进行一些调整。例如,如果您希望 WordMap 不区分大小写,则只能将小写版本的单词添加到 self._words 中。

关于python - 如何将由可打印字符组成的字符串映射到整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67296971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com