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