什么是Pythonic初始化数组的方法?

时间:2016-07-21 12:10:53

标签: python

我经常看到Python 3中的数组以两种方式之一声明:

foo[2, 2] = [[1, 2], [3, 4]]

...或

foo[2][2] = [[1, 2], [3, 4]]

我已尝试在计算成本高昂的任务(即机器学习)中使用这两者来处理庞大的数组,而且它们似乎并没有多大区别。

两者在内存分配和循环执行时间等方面是否存在差异?当列表很大时?

2 个答案:

答案 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