有序对的数组索引

Array index for an ordered pair

您好,我需要使用此逻辑(无函数)创建一个有序对:

#---------------------------------------------------------------------------------

A = [2,5,7];
B = [6,2];
LA = len(A)
LB = len(B)
Maux = [];
print(type(Maux))

for i in range(0,LA,1):
    for j in range(0,LB,1):
        
        Maux[i-1*LB + j , j] = [A[i] , B[j]] 

print(Maux);

#---------------------------------------------------------------------------------

编译的时候系统说:list indices must be integers or slice, not tuple

我读到了这个问题,我认为这是访问矩阵的不正确索引。

有什么想法吗?

如果您将 Maux 声明为 dict,您的代码将起作用:用 Maux = {}.

初始化它

此外,去掉 line-ends 处的分号:您正在编写 Python,而不是 C++ Java Pascal 等

您不需要在 range(...) 调用末尾使用“,1”,为了便于阅读,逗号后应跟单个空格,您实际上不需要 LA 但是没关系,你不需要乘以 1。通过这些改进:

A = [2, 5, 7]
B = [6, 2]
LA = len(A)
LB = len(B)
Maux = {}
print(type(Maux))

for i in range(0, LA):
    for j in range(0, LB):
    
        Maux[i - LB + j, j] = [A[i] , B[j]] 

print(Maux)

输出:

<class 'dict'>
{(-2, 0): [2, 6], (-1, 1): [2, 2], (-1, 0): [5, 6], (0, 1): [5, 2], (0, 0): [7, 6], (1, 1): [7, 2]}