String representation of vectors

The following function returns a string representation of a 2D or 3D vector, which must be represented as a list or tuple containing 2 or 3 items:

>>> def str_vector(v):
...     assert type(v) is list or type(v) is tuple,\
...                 'argument to str_vector must be a list or tuple'
...     assert len(v) in (2,3),\
...                 'vector must be 2D or 3D in str_vector'
...     unit_vectors = ['i','j','k']
...     s = []
...     for i, component in enumerate(v):
...         s.append('{}{}'.format(component, unit_vectors[i])
...     return '+'.join(s).replace('+-', '-')

replace('+-', '-') here converts, for example, '4i+-3j' into '4i-3j'. For example,

>>> str_vector([4, -3])
'4i-3j'
>>> str_vector((4, -3, 2))
'4i-3j+2k'
>>> str_vector((4, -3, 2, -0.5))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in str_vector
AssertionError: vector must be 2D or 3D in str_vector