I’m new in Python, I don’t know where I made mistakes
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))
Line 21 print(q(pairAPy,pairBPy)) Line 8 if listA(a)==listB(b): TypeError: 'list' object is not callable
and the answer should return [(0, 0), (2, 1), (3, 3)].
Advertisement
Answer
You accidentally used (a) and (b) instead of [a] and [b]. Your code should look like this:
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))