How do I code top-down character rotation for a keyboard?

I want to rotate a character in a top-down game using arrow keys. I’ve been able to find mouse tracking tutorials but I can’t find gamepad tutorials. I think I am on the right track, but at the moment rotations snap and horizontal rotation isn’t working correctly. I want smooth rotation:

            float deltaH = Input.GetAxis("P1_Rotate_Horizontal") * 180;
            float deltaV = Input.GetAxis("P1_Rotate_Vertical") * 90;
            float newZRot = deltaH + deltaV;
            transform.rotation = Quaternion.Euler(0, 0, newZRot);

You can try this (this is assuming that the player moves on the XZ-plane:

    // Get the vector of the player's input
    Vector3 Dir = new Vector3(Input.GetAxis("P1_Rotate_Horizontal"), 0, Input.GetAxis("P1_Rotate_Vertical")).normalized;
    // Linerally Interpolate between the current rotation and the new Look Direction
    transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Dir), Time.deltaTime);

You can also change the interpolation value Time.deltaTime to any number between 0 - 1.