在 python 2.7.3 中迭代列表列表时,我注意到更改迭代顺序时的性能差异:
我有一个包含 500000 个字符串的 200 个列表。然后我以以下方式迭代:
numberOfRows = len(columns[0])
numberOfColumns = len(columns)
t1 = time.clock()
for i in xrange(numberOfRows):
for j in xrange(numberOfColumns):
cell = columns[j][i]
print time.clock() - t1
t1 = time.clock()
for i in xrange(numberOfColumns):
for j in xrange(numberOfRows):
cell = columns[i][j]
print time.clock() - t1
该程序反复产生与此类似的输出:
33.97
29.39
现在我希望对列表进行有效的随机访问。这 4 秒是从哪里来的;它只是缓存吗?