Learn Lambda Functions by Building an Expense Tracker - Step 40

Tell us what’s happening:

def add_expense(expenses, amount, category):
expenses.append({‘amount’: amount, ‘category’: category})

def print_expenses(expenses):
for expense in expenses:
print(f’Amount: {expense[“amount”]}, Category: {expense[“category”]}')

def total_expenses(expenses):
return sum(map(lambda expense: expense[‘amount’], expenses))

def filter_expenses_by_category(expenses, category):
return filter(lambda expense: expense[‘category’] == category, expenses)

def main(

Your code so far

def add_expense(expenses, amount, category):
    expenses.append({'amount': amount, 'category': category})
    
def print_expenses(expenses):
    for expense in expenses:
        print(f'Amount: {expense["amount"]}, Category: {expense["category"]}')
    
def total_expenses(expenses):
    return sum(map(lambda expense: expense['amount'], expenses))
    
def filter_expenses_by_category(expenses, category):
    return filter(lambda expense: expense['category'] == category, expenses)
    

def main():
    expenses = []
    while True:
        print('\nExpense Tracker')
        print('1. Add an expense')
        print('2. List all expenses')
        print('3. Show total expenses')
        print('4. Filter expenses by category')
        print('5. Exit')
        
        choice = input('Enter your choice: ')

        if choice == '1':
            amount = float(input('Enter amount: '))
            category = input('Enter category: ')
            add_expense(expenses, amount, category)

        elif choice == '2':
            print('\nAll Expenses:')
            print_expenses(expenses)

        elif choice == '3':
            print('\nTotal Expenses: ', total_expenses(expenses))

# User Editable Region

        elif choice == '4':
            category = input('Enter category to filter: ')
            print(f'\nExpenses for {category}:')
            print_expenses(filter_expenses_by_category(expenses, category))
            
           

            

# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

Challenge Information:

Learn Lambda Functions by Building an Expense Tracker - Step 40

Hi, welcome to the forum!

We see you have posted some code but did you have a question? (You have not filled out the “Tell us what’s happening:” field above)

Please Tell us what’s happening in your own words. Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more you say, the more we can help!

Hi @romo.emi19

Here is a comparison of the original code and your code.

The code in blue is the original code, the code in red is your code.
The code in magenta is the overlap.

Here are the instructions.

Still within the elif statement, pass expenses_from_category iterator to a print_expenses call.

You are asked to add a new line of code, not to modify the existing code.

Happy coding