Python List ValueError: too many values to unpack
The exception ValueError: too many values to unpack occurs when you try to unpack a list with number of values in the list greater than the number of variables provided to unpack.
In this tutorial, you will learn how to recreate this exception, and how to address this exception, with examples.
For example, in the following program, we tried unpacking a list of five items into three variables.
Python Program
nums = [100, 200, 300, 400, 500]
num_1, num_2, num_3 = nums
print(f"num_1 is {num_1}")
print(f"num_2 is {num_2}")
print(f"num_3 is {num_3}")
Run Code CopyOutput
Traceback (most recent call last):
File "/Users/pythonexamplesorg/main.py", line 3, in <module>
num_1, num_2, num_3 = nums
^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3)
We get ValueError exception. And the message too many values to unpack is clear, that there are too many values in the list to unpack into the expected 3 variables.
Solution
If we are interested in unpacking only the first three items in the list to three variables, you have to first unpack the starting required number of items into variables, and then assign the rest into a new list using asterisk symbol as shown in the following statement.
num_1, num_2, num_3, *others = nums
Let us use this statement to unpack the list into fewer number of variables, and run the program.
Python Program
nums = [100, 200, 300, 400, 500]
num_1, num_2, num_3, *others = nums
print(f"num_1 is {num_1}")
print(f"num_2 is {num_2}")
print(f"num_3 is {num_3}")
Run Code CopyOutput
num_1 is 100
num_2 is 200
num_3 is 300
Summary
In this tutorial, we have seen how to handle the exception ValueError: too many values to unpack when we are unpacking a list.