Python中字典的最大大小?

我正在使用python字典来保存大量对象,并且每个对象都有一个字符串名称.具体来说,这是我的代码:

from itertools import product
for (i,j,k) in product(range(N),range(M),range(K)):
    var_name='x_'+'_'+str(i)+str(j)+'_'+str(k)
    var_dict[var_name] = f(var_name,other_params)
print len(var_dict)

f(…)返回一个对象.在我的代码中,N = 363,M = 500,K = 2.所以我希望词典中有363000个条目.但是当我检查var_dict的长度时,它是330860!

(Pdb)len(var_dict)
330860

这是我的问题:
1)有没有解释?例如. python的内置哈希表可以解决的项目数是否有任何限制?

2)我该怎么做才能解决这个问题?

谢谢!

问题出在这里:

str(i)+str(j)

这不会产生唯一标识符.例如,当i = 11且j = 1时,设置的值将覆盖i = 1和j = 11时设置的值(还有更多实例).

您可以通过在两个数字之间插入一些分隔符(例如j和k之间的下划线)来解决问题.

翻译自:https://stackoverflow.com/questions/23532449/maximum-size-of-a-dictionary-in-python

转载注明原文:Python中字典的最大大小?