我正在查看用python编写的代码,其中一部分看起来像这样。
n = len(A)
T = n * [False]
for i in xrange(n + 1):
T[A[i]] = True
其中A是整数值数组。我假设第二行创建了一个大小为n的列表,其值为false,但我不清楚T [A [i]]是如何工作的。它是否在A [i]访问T的元素?但是A [i]不一定在0和n之间。
答案 0 :(得分:2)
确实在T
访问了A[i]
的元素。确实A[i]
可能不在0和n之间。但这就是代码的作用。
因此,如果您期望T[A[i]]
应该有效,可能之前有一些代码,可以确保A[i]
始终在0和n之间。
答案 1 :(得分:1)
A[i]
可能是一个数字,是的,如果它的长度是>n
,你将得到一个IndexError。
传递的实际变量类似于:
T[number]
这是一个小例子,我们有A
变量:
>>> A = [4, 3, 2, 1, 0]
我们将T
变量设为:
>>> T = ['A', 'B', 'C', 'D', 'E']
然后我们进行循环:
>>> for i in range(5):
print T[A[i]]
结果:
E
D
C
B
A
只要A[i]
不高于n,就可以了。
希望这有帮助!
答案 2 :(得分:0)
见farid,
你对T [A [i]]感到困惑。 让我告诉你......
A和T都是数组。
对于T [A [i]] = True, A [i]是数组T的索引。
因为T的长度仅为n。 因此,如果阵列A具有所有整数值< n(ARRAY T的长度)。 代码可以正常工作。
但如果不是: Python将通过 索引超出范围 异常