Answer:
Python code is explained below
Explanation:
average , count, indexerror, typeerror variables are initialised to 0
Then, for loop is used to traverse the indexlist, if type is not right, typeerror is incremented, else if index is not right, indexerror is incremented, otherwise, count is incremented, and the number is added to average.
At last, average variable which contains the sum of numbers is divided by count to get average.
Here is the code:
def error_finder(numList, indexList):
average = 0
count = 0
indexerror = 0
typeerror = 0
for i in range(len(indexList)):
if type(indexList[i])==int:
if indexList[i]>=len(numList) or i<0:
indexerror = indexerror + 1
else:
average = average + numList[indexList[i]]
count = count+1
else:
typeerror = typeerror + 1
d = {"IndexError": indexerror, "TypeError":typeerror}
average = average/count
return(average, d)
print(error_finder([4, 5, 1, 7, 2, 3, 6], [0, "4", (1, ), 18, "", 3, 5.0, 7.0, {}, 20]))