'This is the constructor for the Vector class.  You shouldn\'t be
calling this, it should only be used by other functions. You should be
treating Vectors like you would with if you were doing the math by
hand, and getting the first 3 from the standard basis vectors from a
ReferenceFrame.
The only exception is to create a zero vector:
zv = Vector(0)'

def __init__(self, inlist):

    self.args = []
    if (inlist == 0):
        inlist = []
    if isinstance(inlist, dict):
        d = inlist
    else:
        d = {}
        for inp in inlist:
            if (inp[1] in d):
                d[inp[1]] += inp[0]
            else:
                d[inp[1]] = inp[0]
    for (k, v) in d.items():
        if (v != Matrix([0, 0, 0])):
            self.args.append((v, k))
