L =[[1, 2, 6, 5],
[4, 5, 3, 2],
[7, 9, 8, 1],
[1, 2, 1, 4]]
def func(l):
total_sum = sum([sum(i) for i in l])
# make the sum of inner lists, store them in the list and then get the sum of final list
count = sum([len(i) for i in l]) # get the total element in the list
return total_sum/count # return average
print(func(L))
output
3.8125
какой код операции должен быть
def get_average_elevation(elevation_map):
"""Return the average elevation across all cells in the elevation map
elevation_map.
Precondition: elevation_map is a valid elevation map.
>>> get_average_elevation(UNIQUE_3X3)
5.0
>>> get_average_elevation(FOUR_BY_FOUR)
3.8125
"""
total = 0
count = 0
for sublist in range(len(elevation_map)): # gives sublist index
for i in range(len(elevation_map[sublist])): # gives index of item in sublist
count+=1
total = total + elevation_map[sublist][i]
return total/count
l = [[1, 2, 6, 5],
[4, 5, 3, 2],
[7, 9, 8, 1],
[1, 2, 1, 4]]
print(get_average_elevation(l))
почему наступает отклонение, это потому что
скажем, список l = [1,2,3,4]
, поэтому для этого списка for i in range(len(l))
будет повторяться только 4 раза, но он не будет давать элемент внутри списка (который, по мнению оператора, даст), но range возвращает объект, который повторяется в инклюзивном диапазоне. дать список от начала до конца-1.
какой операционный элемент был элементом в списке, для этого ему нужно использовать for element in list
это даст индивидуальный элемент, в этом квесте относительно внутреннего списка.
также, чтобы получить среднее значение, оператору нужно получить сумму всех элементов, которые он собирает, но ему нужно сделать среднее значение за пределами цикла for.
также необходимо счетчик для подсчета общего количества элементов. чтобы получить среднее значение.