Hay una cadena, por ejemplo. EXAMPLE
.
¿Cómo puedo eliminar el carácter del medio, es decir, M
de él? No necesito el código Quiero saber:
- ¿Las cadenas en Python terminan en algún carácter especial?
- ¿Cuál es una mejor manera: cambiar todo de derecha a izquierda a partir del carácter central O la creación de una nueva cadena y no copiar el carácter central?
Respuestas:
En Python, las cadenas son inmutables, por lo que debe crear una nueva cadena. Tiene algunas opciones sobre cómo crear la nueva cadena. Si desea eliminar la 'M' donde aparece:
Si desea eliminar el carácter central:
Usted preguntó si las cadenas terminan con un carácter especial. No, estás pensando como un programador en C. En Python, las cadenas se almacenan con su longitud, por lo que cualquier valor de byte, incluido
\0
, puede aparecer en una cadena.fuente
from __future__ import division
al comienzo de su script hará que la versión 2.X python actúe como la versión 3.X""
no implica una línea vacía. Si lo pones en una lista y lo unes con nuevas líneas, formará una línea vacía, pero hay muchos otros lugares donde podrías usar una cadena vacía que no lo haga.Esta es probablemente la mejor manera:
No te preocupes por cambiar de personaje y demás. La mayoría del código de Python tiene lugar en un nivel de abstracción mucho más alto.
fuente
M
Puede que no sea único. En ese caso, esto reemplazará todos losM
s, ¿verdad?n
ocurrencias, useoriginal.replace("M", "", n)
.Para reemplazar una posición específica:
Para reemplazar un personaje específico:
fuente
l
. Entonces, para la primera parte, la restricción para pos debería serl-1 > pos >= 0
.Las cuerdas son inmutables. Pero puede convertirlos en una lista, que es mutable, y luego volver a convertir la lista en una cadena después de haberla cambiado.
También puede crear una nueva cadena, como han mostrado otros, tomando todo excepto el carácter que desee de la cadena existente.
fuente
str.replace
método?No puede, porque las cadenas en Python son inmutables .
No. Son similares a las listas de personajes; la longitud de la lista define la longitud de la cadena y ningún carácter actúa como un terminador.
No puede modificar la cadena existente, por lo que debe crear una nueva que contenga todo excepto el carácter del medio.
fuente
Usa el
translate()
método:fuente
None
para eliminar parece que no funciona):translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
ystr.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
UserString.MutableString
Forma mutable:
fuente
Cómo eliminar un personaje de una cadena: Aquí hay un ejemplo en el que hay una pila de cartas representadas como personajes en una cadena. Se dibuja uno de ellos (importar módulo aleatorio para la función random.choice (), que selecciona un carácter aleatorio en la cadena). Se crea una nueva cadena, cardsLeft, para contener las tarjetas restantes dadas por la función de cadena replace () donde el último parámetro indica que solo una "tarjeta" debe ser reemplazada por la cadena vacía ...
fuente
He visto esto en alguna parte aquí .
fuente
Esto es lo que hice para cortar la "M":
fuente
Si desea eliminar / ignorar caracteres en una cadena y, por ejemplo, tiene esta cadena,
"[11: L: 0]"
de una respuesta de API web o algo así, como un archivo CSV, supongamos que está utilizando solicitudes
bucle y deshacerse de los caracteres no deseados:
División opcional, y podrá leer valores individualmente:
Ahora acceder a cada valor es más fácil:
Esto imprimirá
fuente
Para eliminar una
char
o unasub-string
vez (solo la primera vez):NOTA: Aquí
1
puede reemplazarse por cualquieraint
por el número de veces que desea reemplazar.fuente
Simplemente puede usar la comprensión de la lista.
Suponga que tiene la cadena:
my name is
y desea eliminar el carácterm
. usa el siguiente código:fuente
fuente
Otra forma es con una función,
A continuación se muestra una forma de eliminar todas las vocales de una cadena, simplemente llamando a la función
fuente
Las cadenas son inmutables en Python, por lo que ambas opciones significan básicamente lo mismo.
fuente