Unpack-Anywhere-With-Star
Unpacking iterables in python with *
is a pretty handy trick for writing code that is just a tiny bit more pythonic than not.
arr: Tuple[Union[int, str]] = (1, 2, 3, 'a', 'b', 'c') print(arr) >>> (1, 2, 3, 'a', 'b', 'c') # the * unpacks the tuple into the individual elements print(*arr) >>> 1, 2, 3, 'a', 'b', 'c' x, y, z, *alphas = arr # x = 1, y = 2, z = 3 # alphas = [ 'a', 'b', 'c' ]
But @Ned Batchelder showed me via Twitter than you can arbitrarily unpack arguments based on position - it doesn't have to be done at the beginning or the end!
x, y, *mixed, alpha = arr # x = 1, y = 2 # mixed = [3, 'a', 'b'] # alpha = 'c'
I'm not entirely sure when I'll need this but it definitley shows me another example of how flexible python is!