def get_instances(ClassName, arguments, attributes):
    """Get instances of a class with specific attributes

    Assumes ClassName is a class type

    Assumes arguments is an ordered collection of dictionaries as defined
    in the module documentation

    Assumes attributes is a list of dictionaries that maps strings (name)
    to objects (value). name is the name of an attribute in ClassName, and
    value is what the value of the attribute should be. must be same length
    as arguments.

    Returns a list of instances of ClassName such that each relevant attribute
    is as specified in attributes
    """
    instances = []
    for instance in arguments:
        args = instance.get('args', ())
        kwargs = instance.get('kwargs', {})
        instances.append(ClassName(*args, **kwargs))

    for i, instance in enumerate(instances):
        for name, value in attributes[i].items():
            setattr(instance, name, value)
    return instances