python-3.x - 从 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)
但这似乎是一种内存效率低下的方式。
有没有更有效的方法来获取这个集合?
我找到了这个链接。但是,他们希望在此处找到唯一列表集,而不是列表中的唯一元素集。
解决方案
您可以使用带有 setupdate
操作的简单 for 循环。
vocabulary = set()
for tokens in corpus:
vocabulary.update(tokens)
输出:
{'this', 'one', 'text', 'two', 'is'}
推荐阅读
- node.js - 为 React 项目生成 RPM 文件
- c# - 在 C# 中使用 Neo4j 时,为什么“IDriver”不包含“会话”的定义?
- ubuntu - 如何从我的 Ubuntu 机器上的终端列出用户?
- html - 如何将图像移动到 HTML / CSS 中的文本旁边?
- sql-server - SQL Server 中带有标识的行中的列
- apache-kafka - Kafka Streams:按后续相同的键和时间窗口分组
- javascript - 如何在 javascript 中获取联系表 7 字段值?
- julia - Julia 不再在 depot_path 中找到包
- javascript - 在 Podio 中的 Calculation 字段中添加可点击链接
- jmeter - 请解释 Flow Control Action Sampler 在 5.0 版本中的目标