[1] After the initial tour schedule was announced, the dates were moved slightly to accommodate South Africa's domestic T20 tournament.
He named his stand-in Faf du Plessis as replacement, a move that was confirmed by Cricket South Africa (CSA).
[3] Immediately prior to this series, du Plessis was found guilty of ball tampering during the second Test against Australia that took place in November 2016.
[9] Duanne Olivier was added to South Africa's squad following the second Test to replace Kyle Abbott, who earlier had quit international cricket to sign for the English team Hampshire as a Kolpak player.
[19] On the day before the first ODI, Sri Lanka dropped Isuru Udana, Thikshila de Silva and Seekkuge Prasanna replacing them with Lahiru Kumara, Vikum Sanjaya and Jeffrey Vandersay.