При доступе к словарю, такому как [String: Any], тип результата является Необязательным (Any).
При индексировании массива [Any], тип результата - Any, и вызов может выбросить фатальную ошибку.
Есть ли какая-либо причина для такой разницы?
Было бы так приятно разветвлять выполнение с помощью защитной команды let, если let,? и ??, но вместо вас Оборачивать индексирование массива в if data.count <= index. </p>