def processObjectListWildcards(objectList, suffixList, myId):
    """Replaces all * wildcards with n copies that each have appended one element from the provided suffixList and replaces %id wildcards with myId
    ex: objectList = [a, b, c_3, d_*, e_%id], suffixList=['0', '1', '2'], myId=5 => objectList = [a, b, c_3, e_5, d_0, d_1, d_2]

    :objectList: list of objects
    :suffixList: list of strings that are going to be appended to each object that has the * wildcard
    :myId: string used to replace '%id' wildcard
    :returns: the new list"""

    # we iterate over a copy of the object list (in order to modify it)
    for item in objectList[:]:
        if ('*' in item):
            # append the new items
            for suffix in suffixList:
                objectList.append(item.replace("*", suffix))

            # delete the item that contains the wildcards
            objectList.remove(item)

        if ('%id' in item):
            # replace the id wildcard with the id parameter
            objectList.append(item.replace("%id", myId))
            # delete the item that contains the '%id' wildcard
            objectList.remove(item)

    return objectList