Python ';列表';对象不可用于在两个不同的列表中查找相同的元素

Python ';列表';对象不可用于在两个不同的列表中查找相同的元素,python,for-loop,Python,For Loop,我是Python新手,我不知道我在哪里犯了错误 def q(listA, listB): list1=[] for a in range(len(listA)): for b in range(len(listB)): if listA(a)==listB(b): list1.append(a) list2=[] for x in range(len(listb)): for

我是Python新手,我不知道我在哪里犯了错误

def q(listA, listB):

    list1=[]
    for a in range(len(listA)):
        for b in range(len(listB)):
            if listA(a)==listB(b):
                list1.append(a)
    list2=[]
    for x in range(len(listb)):
        for y in range(len(listA)):
            if listB(x)==listA(y):
                list2.append(x)
    
    
    return list(zip(list1,list2))

pairAPy = [1,2,3,4]
pairBPy = [1,5,7,2]
print(q(pairAPy,pairBPy))

答案应该返回
[(0,0)、(2,1)、(3,3)]

您意外使用了
(a)
(b)
,而不是
[a]
[b]
。您的代码应该如下所示:

def q(列表A、列表B):
列表1=[]
对于范围内的(len(listA)):
对于范围内的b(len(listB)):
**如果listA[a]==listB[b]:
清单1.追加(a)
列表2=[]
对于范围内的x(len(listb)):
对于范围内的y(len(listA)):
如果listB[x]==listA[y]:
列表2.append(x)
返回列表(zip(列表1、列表2))
配对=[1,2,3,4]
pairBPy=[1,5,7,2]
打印(q(成对,成对))

如果listA[a]==listB[b]如果listA[a]==listB[b]
Line 21 print(q(pairAPy,pairBPy))  
 Line 8             if listA(a)==listB(b):  
 TypeError: 'list' object is not callable