## Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

### Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

# unpacking question.

can anyone tell me why this code doesn't run interms of unpacking?

```def league(*teams):
team1, team2, team3 = teams
print(team1)

prem = ["arsenal", "chelsea", "liverpool"]
league(prem)
```

'ValueError: not enough values to unpack (expected 3, got 1)' is what is return but considering there is 3 strings in the list i don't understand what the problem is?

STAFF
```prem = ["arsenal", "chelsea", "liverpool"]
league(prem)

# => ValueError: not enough values to unpack (expected 3, got 1)
```

`prem` counts as one value, since it is one list!

The notation you'll want is:

```league('arsenal', 'chelsea', 'liverpool')

# => arsenal
```

Try this out and see :)

Thanks!

Or you can unpack the list before passing it as an argument:

```prem = ["arsenal", "chelsea", "liverpool"]
league(*prem)
```

Alexis Othonos, you're a real MVP! aaron roberts, make sure you see this other answer!!

thanks! i think i just covered this in one of the courses, so the * in the argument counts towards there being more values?

The asterisk (*) works only on iterables.

So if you know that what you are passing is a list, tuple, etc. then you can safely add the asterisk to unpack the values.

Try with print function

```prem = ["arsenal", "chelsea", "liverpool"]
teams = 3

# pass list as a single element, therefore the list as an element will be printed:
print(prem)
# ['arsenal', 'chelsea', 'liverpool']

# pass list arguments individually by unpacking. The print function can automatically handle multiple arguments
print(*prem)
# arsenal chelsea liverpool

# unpack non iterable value in function:
print(*teams)
# TypeError
```

Hope this helps