您可能应该使用可以散列的元组:
mydict = {}
mydict[(1, 2)] = 'xxx'
# or more concisely (@JamesHenstridge):
mydict[1,2] = 'xxx'
如果这实际上太慢(不必要地优化),则给定一个整数的最大值,构造一个索引:
def index(a, b, maxB):
return a*maxB + b
mydict[index(1, 2, max)] = 'xxx'
但请注意,函数调用很容易进一步减慢速度,因此您可以内联该函数,但会牺牲可读性,并且如果复制粘贴到其他地方,则更容易引入错误:
mydict[1*max + 2] = 'xxx'
顺便说一下,有一个关于read带有元组键的字典的速度:
Python 元组作为键慢吗? https://stackoverflow.com/questions/9350002/python-tuples-as-keys-slow?rq=1
进行一点点分析后发现,内联索引比元组稍微快一点(
在附注中;如果您担心字典的插入速度,则可能使用了错误的数据结构,或者可能做了不必要的工作。例如,将 CSV 文件解析为每行中的字段并以这种方式将值存储在字典中data[line,field]
如果您可以使行解析变得懒惰并且仅解析您实际从中提取数据的行,则可能没有必要。 IE。不做data = parseAll(somecsv); print data[7,'date']
当你可以做的时候dataLines = somecsv.readlines(); print getField(dataLines[7], 'date')
.