我希望数组从索引4开始,到索引9。我对创建小于4的内存空间不感兴趣,所以最好如何继续?我的二维码如下:

arr = [[ 0 for row in range(2)] for col in range(1, 129)]
>>> arr[0][0] = 1
>>> arr[128][0] = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
IndexError: list index out of range
>>> arr[127][0] = 1

如何有选择地使用特定范围,即最后一个索引从1到128(包括1到128)而不是从0到127。这也许很明显,但有办法做到这一点吗?
感谢你对dicts的建议,我一直在避免这些——我知道——我正在转换的代码大部分来自C,但我认为字典可能是救星。有没有一种方法可以做到我所要求的阵列?

最佳答案

对于分散的阵列,使用dict

sparseArray = {}
sparseArray[(0,0)] = 1
sparseArray[(128,128)] = 1

print sparseArray # Show the content of the sparse array
print sparseArray.keys() # Get all used indices.

关于python - 在Python中修复数组索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7848631/

10-12 21:14