python – string é modificada quando passo para uma função

Boa tarde, eu fiz uma função para substituir essas strings: (“” , “”, “//”) por “/”. A função funcionou perfeitamente, mas, quando a string tem “t” em alguma parte “C:pathteste”, quando passo para uma função esse “t” some, porém, quando faço um loop for nessa string ele aparece, exemplo:

#Função para substituir:
def correct_path(path_filename:str):
    new_local = ''
    words = ("#"(0), "\", "//")
    for letter in path_filename:
        if letter in words:
            if new_local(-1) != letter:
                new_local += '/'
        else:
            new_local += letter
    return new_local

local = "D:OneDriveOneDrive - Etec Centro Paula SouzaProgramacaoPythontestes_kivyIco_KvMD"
print(correct_path(local))
#essa função retorna -> "D:/OneDrive/OneDrive - Etec Centro Paula Souza/Programacao/Python       estes_kivy/Ico_KvMD"

#loop for na string:
local = "D:OneDriveOneDrive - Etec Centro Paula SouzaProgramacaoPythontestes_kivyIco_KvMD"
print((x for x in local))
#resultado -> ('D', ':', '\', 'O', 'n', 'e', 'D', 'r', 'i', 'v', 'e', '\', 'O', 'n', 'e', 'D', 'r', 'i', 'v', 'e', ' ', '-', ' ', 'E', 't', 'e', 'c', ' ', 'C', 'e', 'n', 't', 'r', 'o', ' ', 'P', 'a', 'u', 'l', 'a', ' ', 'S', 'o', 'u', 'z', 'a', '\', 'P', 'r', 'o', 'g', 'r', 'a', 'm', 'a', 'c', 'a', 'o', '\', 'P', 'y', 't', 'h', 'o', 'n', 't', 'e', 's', 't', 'e', 's', '_', 'k', 'i', 'v', 'y', '\', 'I', 'c', 'o', '_', 'K', 'v', 'M', 'D')

Perceba que o (x for x in local) não retirou o “t”, enquanto o for x in local: tirou. Alguém sabe me dizer por que isso acontece? ou como resolver…