Learn Lambda Functions by Building an Expense Tracker - Step 22

Tell us what’s happening:

I can run this, I don’t know how to solve the problem

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):
    pass
    

# User Editable Region

test = lambda x: x * 2
list(print(map(test,[2,3,5,8])))


# User Editable Region


expenses = []

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0

Challenge Information:

Learn Lambda Functions by Building an Expense Tracker - Step 22

Do you get an error message? If so, what is it, and what does it tell you about your code?

Do it by passing the map() call as the argument to the list() function.

General syntax for this is

function(argument)

Where map() is the argument and list() is the function.

The error is: ‘NoneType’ object is not iterable

it should also say which variable or line of your code is the issue

It has problem in the line: list(print(map(test,[2,3,5,8]))). Can you solve it?

I don’t why it’s still not true

ah, right, it’s because print returns None, so you are effectibely doing list(None) which is totally invalid
what is the thing you need to give as argument to list? it’s clearly written

I tried this: list(map(test,[2,3,5,8])) and it still not run

that’s better, but the line started with print(map(test, [2, 3, 5, 8])) so you should not loose the print

so can you show me the right syntax for this?

sorry for my slow understanding:>

you added the list function, so now you need to print that. You know how to print something

so is it like this:
list(print(map(test, [2,3,5,8])))
print(list)

absolutely not, you can’t pass the output of print to list. If you want to print something, do you put print inside the something to print?
If you want to print a book, do you put the printer inside the book?

1 Like

so I did this:
list(map(test, [2, 3, 5, 8]))
print(list)
and the output is <class ‘list’> and it still not true

you were printing this before, then you added list
do not create a new thing, you still need to print this just with list added

ah I did it thank you so much