Is there a way to have a default value if the number of values to unpack is too little compared to the variable list?
For example:
a, b, c = read_json(request)
This works if read_json
returns an array of three or more variable. If it only returns two, I get an exception while assigning c
. So, is there a way to set c
to a default value if it can't be unpacked properly? Something like:
a, b, (c=2) = read_json(request)
Which is similar to what you do when defining a function with default arguments.
Thank you!
You could try *
unpacking with some post-processing:
a, b, *c = read_json(request)
c = c[0] if c else 2
This will assign a
and b
as normal. If c
is assigned something, it will be a list
with one element. If only two values were unpacked, it will be an empty list
. The second statement assigns to c
its first element if there is one, or the default value of 2
otherwise.
>>> a, b, *c = 1, 2, 3
>>> c = c[0] if c else 2
>>> a
1
>>> b
2
>>> c
3
>>> a, b, *c = 1, 2
>>> c = c[0] if c else 2
>>> a
1
>>> b
2
>>> c
2