Совет касается объединения множества строк.
Для вычисления s = s1 + s2 + ... + sn,
1) с помощью +. Создается новая строка s1 + s2, затем создается новая строка s1 + s2 + s3, ... и т. Д., Поэтому требуется много операций по выделению памяти и копированию. Фактически, s1 копируется n-1 раз, s2 копируется n-2 раза, ... и т. Д.
2) используя "" .join ([s1, s2, ..., sn]). Конкатенация выполняется за один проход, и каждый символ в строках копируется только один раз.
В вашем коде join вызывается на каждой итерации, так что это похоже на использование +. Правильный способ - собрать элементы в массив, а затем вызвать для него соединение.
edit: исправлена опечатка