有序对的数组索引
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]}
您好,我需要使用此逻辑(无函数)创建一个有序对:
#---------------------------------------------------------------------------------
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]}