def sushi(roll):
    """Transform a frame to a type, value structure
    Examples:
     - ['X', '-'] -> {type: "strike", values: [10, 0]}
     - ['2', '7'] -> {type: "regular", values: [2, 7]}
     - ['-', '-'] -> {type: "regular", values: [0, 0]}
     - ['1', '/'] -> {type: "spare", values: [1, 9]} 
     - ...         --    Any frame with 3 rolls is last:
     - ['X', 'X', 'X'] -> { type: "last", values: [10, 10, 10]}
     - ['X', '2', '/'] -> { type: "last", values: [10, 2, 8]}
     - ['X', '-', '-'] -> { type: "last", values: [10, 0, 0]}
    """
    sushi_roll = {}
    wasabi = []
    if len(roll) == 3:
        sushi_roll["type"] = "last"
    elif roll[0] == "X":
        sushi_roll["type"] = "strike"
    elif roll[1] == "/":
        sushi_roll["type"] = "spare"
    else:
        sushi_roll["type"] = "regular"

    for i in range(0, len(roll)):
        if roll[i] == "X":
            wasabi.append(10)
        elif roll[i] == "/":
            wasabi.append(10 - int(roll[i - 1]))
        elif roll[i] == "-":
            wasabi.append(0)
        else:
            wasabi.append(int(roll[i]))

    sushi_roll["values"] = wasabi
    return sushi_roll