首页 > 解决方案 > 从 Python 中的列表列表创建集合的高效内存方法

问题描述

我有一个列表列表,其中每个内部列表都是一个标记化的文本,所以它的长度是文本中的单词数。

corpus = [['this', 'is', 'text', 'one'], ['this', 'is', 'text', 'two']]

现在,我想创建一个包含语料库中所有唯一标记的集合。对于上面的示例,所需的输出将是:

{'this', 'is', 'text', 'one', 'two}

目前,我有:

all_texts_list = list(chain(*corpus))
vocabulary = set(all_texts_list)

但这似乎是一种内存效率低下的方式。

有没有更有效的方法来获取这个集合?


我找到了这个链接。但是,他们希望在此处找到唯一列表集,而不是列表中的唯一元素集。

标签: python-3.xlistset

解决方案


您可以使用带有 setupdate操作的简单 for 循环。

vocabulary = set()

for tokens in corpus:
    vocabulary.update(tokens)

输出:

{'this', 'one', 'text', 'two', 'is'}

推荐阅读