任务
我正在尝试为字符串中的单词分配数字标识符。你知道吗
代码
我目前做了以下工作:
mystr = 'who are you you are who'
str_values = mystr.split()
list_values = [str(i) for i, w in enumerate(mystr.split())]
输出:
>>> str_values
['0', '1', '2', '3', '4', '5']
>>> list_values
['who', 'are', 'you', 'you', 'are', 'who']
查询/所需输出
mystr
包含重复的单词,因此我想给每个单词分配一个数字,而不是每次分配不同的数字,但不确定应该如何开始这样做。因此,我想list_values
输出以下内容:
['0', '1', '2', '2', '1', '0']
你需要用字典来记录哪些单词已经被看到了
为了避免使用全局变量,可以将其包装在类中
你可以这样使用它:
输出为:
我们可以分两个阶段工作:
比如:
这会产生:
如果需要,还可以使用
str(..)
将标识符转换为字符串,但我不明白为什么要这样做:该算法通常适用于O(n)。你知道吗
你可以在另一张单子的帮助下-
第一个
n
是空列表。{cd2}的元素现在迭代。{if}cd1的元素添加到索引的条件中。你知道吗现在是条件。有两部分带有
or
。首先它检查元素是否存在于n
。如果是,则获取元素的索引。如果不是,则转到第二部分,它只是将元素附加到列表n
。现在append()
返回None
。这就是为什么我在它前面加了一个not。因此,该条件将得到满足,它将给出新插入的元素索引。你知道吗基本上,if条件的第一部分限制
n
中的重复元素加法,第二部分进行加法。你知道吗相关问题 更多 >
编程相关推荐