В таком виде код почти ничего не делает. Просто меняет структуру данных - список кортежей превращает в словарь, затем в список кортежей. Единственное значимое изменение - суммирование. Так просто используй сразу подходящую структуру. Например, словарь. И вся функция превращается в одну строчку внутри цикла.
foo = dict()
min_amount = 1
for type_, amount in (('food', 4), ('food', 3), ('car', 3), ('dog', 1)):
foo[type_] = foo.get(type_, 0) + (amount if amount >= min_amount else 0)
print(*sorted(foo.items(), key=lambda x: x[1]), sep='\n')