Не могу понять как написать код в питоне

Дан список выручки по датам

а = {'01.12.22': 12000, '02.12.22': 14500, '03.12.22': 18542' и тд}

Нужно написать функцию summa и на выходе получить даты через запятую, в которые выручка составила менее суммы, которую указал пользователь. Вывод должен выглядеть так: (f'Список дней, в которые заработали менее {sum} рублей: {summa(sum)}')

Код который мучал я:

def summa(sum):
    k = a.keys()
    count = 0
    for date in a:
        for i in a:
            if i[date] > sum:
                count += 1
    return k

Ответы (3 шт):

Автор решения: Dmitriy Zubov

Если я вас правильно понял, то вот решение вашей проблемы

dict_ = {'01.12.22': 12000, '02.12.22': 14500, '03.12.22': 18542}  # ваш словарь
s = int(input('Ввод суммы пользователем: '))  # вводим сумму

def summa(d, s):
    answer = [0]  # результативный массив. 0 - место, в котором будет собираться сумма
    for key, value in d.items():  # проходим по всем элементам массива (ключам и их значениям)
        if value < s:  # если попали под ваше условие
            answer[0] += value  # увеличиваем на эту сумму нулевое значение
            answer.append(key)  # добавляем эту дату
    return answer
        
array = summa(dict_, s)
print(f'Список дней, в которые заработали менее {s} рублей: {array[0]}')
print(array[1:])  # вывод массива со срезом собранной суммы
→ Ссылка
Автор решения: MarianD
def summa(receipts, limit):
    total = 0
    days = []
    for date, value in receipts.items():
        if value < limit:
            total += value
            days.append(date)
    return days, total

# Тест с каким-то словарем и каким-то пределом
a = {'01.12.22': 10_000, '02.12.22': 20_000, 
     '03.12.22': 40_000, '04.12.22': 30_000}

days, total = summa(a, 35_000)
print(f"{days}: {total}")

Вывод:

['01.12.22', '02.12.22', '04.12.22']: 60000
→ Ссылка
Автор решения: Vladimir Bogdanov

Если требуется просто вывести список дат, то можно через генераторное выражение:

a = {'01.12.22': 10_000, '02.12.22': 20_000, 
     '03.12.22': 40_000, '04.12.22': 30_000}

sum = 35000
g = (k for k, v in a.items() if v < sum)
print(f'Список дней, в которые заработали менее {sum} рублей:{list(g)}')

Либо в виде ленивой функции:

def get_date_list(d: dict, s):
    for k, v in d.items():
        if v < s:
            yield k

print(f'Список дней, в которые заработали менее {sum} рублей: {list(get_date_list(a, sum))}')
→ Ссылка