Python集合(set)能够容纳的值数量是否有限制?

3

我正在尝试使用Python集合作为MySQL表中的ID过滤器。 Python集合存储要过滤的所有ID(目前约30,000个),这个数字随着时间的推移会慢慢增长,我担心Python集合的最大容量。它可以包含的元素数量是否有限制?


仅就计算机内存耗尽而言,你所说的“大”是指多大? - David Robinson
很可能,在被语言限制阻挡之前,您会受到系统资源(可用RAM)的限制。 - Basile Starynkevitch
2个回答

10

您面临的最大限制是计算机上的内存。尝试输入以下命令:

s = set(xrange(10000000))

这将创建一个长度为1000万的集合,比您举的3万个例子要大得多。在我的电脑上(一台带有4GB内存的Macbook Air),这只需要几秒钟就可以运行。无论您使用什么系统,您都可能会受到类似的限制。

当然,存在绝对的上限,远在那之前,由于冲突数量和必要的内存交换,您的集合就会开始变慢。因此,这个集合有多大很重要。如果您要处理的项目超过1000万个,您可能需要考虑改用数据库。


非常有趣!感谢您的见解!我的数字将保持在集合中的100,000个ID以下,所以我想现在还不错。 - Asimov4

0

我不知道集合中项目数量是否存在任意限制。很可能这个限制与可用内存有关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接