This works:
x = ['foo', 'bar']
y = [*x]
print(y) # prints ['foo', 'bar']
but this doesn't:
x = ['foo', 'bar']
y[*x] # raises SyntaxError (not NameError!)
How can I unpack tuples while indexing?
Here are two examples where I'd like to use this approach, but I'm more interested in understanding why *
-unpacking seems not to be supported in indexing in general.
import numpy as np
def lookup(a: np.ndarray, coordinates: tuple) -> float:
return a[*coordinates]
a1 = np.zeros((2, 2))
print(lookup(a1, (0, 1)) # Should print 0
a2 = np.zeros(2, 2, 2))
print(lookup(a2, (0, 0, 1)) # Should print 0
or
from typing import Tuple
NUM_DIMENSIONS = 2 # Might change at a later point in time
# Should be equivalent to Tuple[float ,float]
Result = Tuple[*([float] * NUM_DIMENSIONS)]
def get() -> Result:
...
from Tuple unpacking while indexing
No comments:
Post a Comment