我经常看到Python 3中的数组以两种方式之一声明:
foo[2, 2] = [[1, 2], [3, 4]]
...或
foo[2][2] = [[1, 2], [3, 4]]
我已尝试在计算成本高昂的任务(即机器学习)中使用这两者来处理庞大的数组,而且它们似乎并没有多大区别。
两者在内存分配和循环执行时间等方面是否存在差异?当列表很大时?
答案 0 :(得分:1)
在这种情况下,它会创建元组(ti, tj)
并将其传递给dense.__getitem__()
。至于完成的内容,您需要查看dense
类型的文档和/或来源。
答案 1 :(得分:1)
代码dense[ti, tj]
调用dense.__getitem__((ti, tj))
。在这种情况下,逗号构造一个元组。这不适用于列表,但如果键是元组,它可以与字典一起使用。
>>> [1,2,3][1, 2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple
>>> {(1, 2): 1}[1, 2]
1