为什么 python 列表占用这么多内存?
Why do python lists take up so much memory?
我有一个 pandas dataframe
每行包含大量文本,转换为 .pkl
时它占用 1.6GB 的 space。现在我想从这个数据框中列出一个单词列表,我认为像 [word for text in df.text for word in i.split()]
这样简单的东西就足够了,但是,这个表达式在 10 秒内吃掉了所有 16GB 的内存,仅此而已。我真的很感兴趣它是如何工作的,为什么它不超过 1.6GB?我知道列表会分配更多的内存以便能够扩展,所以我尝试了元组 - 结果相同。我什至尝试将所有内容作为元组 ('one', 'two', 'three')
写入文件,然后打开文件并执行 eval
- 结果仍然相同。为什么会这样? pandas 压缩数据还是 python 效率低下?什么是更好的方法?
您可以使用发电机。例如map(func, iterable)
我有一个 pandas dataframe
每行包含大量文本,转换为 .pkl
时它占用 1.6GB 的 space。现在我想从这个数据框中列出一个单词列表,我认为像 [word for text in df.text for word in i.split()]
这样简单的东西就足够了,但是,这个表达式在 10 秒内吃掉了所有 16GB 的内存,仅此而已。我真的很感兴趣它是如何工作的,为什么它不超过 1.6GB?我知道列表会分配更多的内存以便能够扩展,所以我尝试了元组 - 结果相同。我什至尝试将所有内容作为元组 ('one', 'two', 'three')
写入文件,然后打开文件并执行 eval
- 结果仍然相同。为什么会这样? pandas 压缩数据还是 python 效率低下?什么是更好的方法?
您可以使用发电机。例如map(func, iterable)