replacement - string in python
Traduzca Python a Lua: reemplace un carácter de cadena en una lista (2)
Analógico de string.gsub()
pero sin caracteres mágicos (reemplazo simple)
function string:replace(pattern, replace_string, ...)
return (self:gsub(
pattern:gsub("%p","%%%0"),
replace_string:gsub("%%","%%%%"),
...
))
end
Ejemplo:
print(string.replace("25%", "%", " percent")) --> 25 percent
print(("n>=0"):replace(">=", "≥")) --> n≥0
s = "#01"; print(s:replace("#", "")) --> 01
Estoy aprendiendo Lua y tengo un poco de conocimiento de Python y quiero reemplazar un personaje en una cadena como en Python, pero no tuve la suerte de encontrar las funciones de traducción exactas.
Quiero hacer esto en Lua:
l = ["#01","#02", "#03"]
print(l)
for i in range(len(l)):
l[i]=l[i].replace("#","")
#print (i)
print (l)
Primero en Python utilizarías una lista de comprensión:
>>> l = ["#01", "#02", "#03", "04"]
>>> l = [s.replace(''#'', '''') for s in l]
>>> print(l)
[''01'', ''02'', ''03'', ''04'']
Si realmente necesita actualizar la lista en su lugar:
>>> l[:] = [s.replace(''#'', '''') for s in l]
En Lua puede iterar sobre la lista / matriz / tabla con y usar gsub
para reemplazar las subcadenas:
> l = {"#01", "#02", "#03", "04"}
> for k, v in pairs(l) do print(k, v) end
1 #01
2 #02
3 #03
4 04
> for k in next,l do l[k] = l[k]:gsub("#", "") end
> for k, v in pairs(l) do print(k, v) end
1 01
2 02
3 03
4 04