Шаг 2. «Сумма остальных» — два одинаковых способа
В условиях часто просят сумму чисел кроме наименьшего и наибольшего. Считать можно двумя путями, и они дают одно и то же:
| Срез отсортированного | Вычитание из общей суммы |
|---|
s = sorted(row)
print(sum(s[1:-1])) # 17
s[1:-1] — «всё, кроме первого и последнего». Читается наглядно: отрезали края.
| print(sum(row) - min(row) - max(row)) # 17
Вычли по одному крайнему из общей суммы. Короче, но легче ошибиться в знаках. |
Полезно знать и «пачками»:
s = sorted([6, 2, 9, 4, 7])
print(sum(s[:3])) # 12 сумма трёх наименьших: 2+4+6
print(sum(s[-3:])) # 22 сумма трёх наибольших: 6+7+9
Проверь себя на дубликатах. Строка 3 3 5 8 8: наименьшее 3 встречается дважды. Оба способа снимают по одному крайнему: sum(s[1:-1]) = 3+5+8 = 16 и 27−3−8 = 16. Совпало — второй экземпляр 3 остался в «остальных».