三重列表与双字典

2024-04-26 09:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有40000份文件,每个文件93.08字。在avg上,每个单词都是一个数字(可以索引字典),每个单词都有一个计数(频率)。阅读更多here。你知道吗

我在两个数据结构之间存储数据,我想知道我应该选择哪一个,Python人会选择哪一个!你知道吗

三重列表:

列表,其中每个节点:

是一个列表,其中每个节点:

\uuuuuuu。。。。是两个值的列表;word_idcount。你知道吗

双字典:

带有doc_id键和值字典的字典。你知道吗

该值字典将word_id作为键,count作为值。你知道吗


我觉得第一个需要更少的空间(因为它不存储doc_id),而第二个则更易于处理和访问。我的意思是,访问列表中的I元素是O(n),而在字典中它是常量,我认为。我该选哪一个?你知道吗


Tags: 文件id列表doc字典节点herecount
3条回答

你应该用字典。它将使处理代码更容易理解和编程,而且复杂性也更低。你知道吗

使用列表的唯一原因是,如果您关心文档的顺序。你知道吗

如果您不关心项目的顺序,那么您肯定应该使用字典,因为字典用于对相关数据进行分组,而列表通常用于对更通用的项目进行分组。你知道吗

此外,在字典中查找比在列表中查找要快。你知道吗

列表中的查找是O(n),而字典中的查找是O(1)。虽然列表在内存中比列表大得多

实际上,您只需要存储大量的数字,对于这些数字,最节省空间的选择是array。这些是一维的,因此您可以编写一个类,它接受三个索引(最后一个是0表示word_id,1表示count),并执行一些基本的加法和乘法来找到正确的1D索引。你知道吗

相关问题 更多 >