una separar reemplazar por palabras palabra letras funciones funcion especiales eliminar contar caracteres caracter cadena python string

separar - Cómo eliminar un carácter de una cadena usando Python



reemplazar caracteres en python (15)

Hay una cadena, por ejemplo. EXAMPLE .

¿Cómo puedo eliminar el carácter 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 medio O la creación de una nueva cadena y no copiar el carácter central?

¿Cómo puedo eliminar el carácter medio, es decir, M de él?

No puedes, porque las cadenas en Python son immutable .

¿Las cadenas en Python terminan en algún carácter especial?

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 terminador.

¿Cuál es una mejor manera: cambiar todo de derecha a izquierda a partir del carácter medio O la creación de una nueva cadena y no copiar el carácter central?

No puede modificar la cadena existente, por lo que debe crear una nueva que contenga todo, excepto el carácter central.


En Python, las cadenas son inmutables, por lo que debes crear una nueva cadena. Tienes algunas opciones de cómo crear la nueva cadena. Si quieres eliminar la ''M'' donde aparezca:

newstr = oldstr.replace("M", "")

Si quieres eliminar el carácter central:

midlen = len(oldstr)/2 newstr = oldstr[:midlen] + oldstr[midlen+1:]

Preguntaste si las cuerdas terminan con un caracter especial. No, estás pensando como un programador de C En Python, las cadenas se almacenan con su longitud, por lo que cualquier valor de byte, incluido /0 , puede aparecer en una cadena.


Esta es probablemente la mejor manera:

original = "EXAMPLE" removed = original.replace("M", "")

No te preocupes por cambiar de personaje y tal. La mayoría del código de Python tiene lugar en un nivel mucho más alto de abstracción.


Esto es lo que hice para cortar la "M":

s = ''EXAMPLE'' s1 = s[:s.index(''M'')] + s[s.index(''M'')+1:]


Las cadenas son inmutables en Python, por lo que ambas opciones significan básicamente lo mismo.


Las cuerdas son inmutables. Pero puede convertirlos a una lista, que es mutable, y luego volver a convertir la lista en una cadena después de haberla cambiado.

s = "this is a string" l = list(s) # convert to list l[1] = "" # "delete" letter h (the item actually still exists but is empty) l[1:2] = [] # really delete letter h (the item is actually removed from the list) del(l[1]) # another way to delete it p = l.index("a") # find position of the letter "a" del(l[p]) # delete it s = "".join(l) # convert back to string

También puede crear una nueva cadena, como lo han mostrado otros, tomando todo excepto el carácter que desea de la cadena existente.


Para eliminar una char o una char una vez (solo la primera vez):

main_string = main_string.replace(sub_str, replace_with, 1)

NOTA: Aquí se puede reemplazar 1 por cualquier int para el número de ocurrencias que desea reemplazar.


Para reemplazar una posición específica:

s = s[:pos] + s[(pos+1):]

Para reemplazar un personaje específico:

s = s.replace(''M'','''')


Si desea eliminar / ignorar los caracteres de una cadena y, por ejemplo, tiene esta cadena,

"[11: L: 0]"

de una respuesta de la API web o algo así, como un archivo CSV, digamos que está utilizando solicitudes

import requests udid = 123456 url = ''http://webservices.yourserver.com/action/id-'' + udid s = requests.Session() s.verify = False resp = s.get(url, stream=True) content = resp.content

bucle y deshacerse de caracteres no deseados:

for line in resp.iter_lines(): line = line.replace("[", "") line = line.replace("]", "") line = line.replace(''"'', "")

División opcional, y podrás leer valores individualmente:

listofvalues = line.split('':'')

Ahora acceder a cada valor es más fácil:

print listofvalues[0] print listofvalues[1] print listofvalues[2]

Esto imprimirá

11

L

0


Simplemente puede utilizar la lista de comprensión.

Supongamos que tiene la cadena: my name is y desea eliminar el carácter m . Usa el siguiente código:

"".join([x for x in "my name is" if x is not ''m''])


Utilice el método translate() :

>>> s = ''EXAMPLE'' >>> s.translate(None, ''M'') ''EXAPLE''


UserString.MutableString

Forma mutable:

import UserString s = UserString.MutableString("EXAMPLE") >>> type(s) <type ''str''> # Delete ''M'' del s[3] # Turn it for immutable: s = str(s)


card = random.choice(cards) cardsLeft = cards.replace(card, '''', 1)

Cómo eliminar un carácter de una cadena: Aquí hay un ejemplo donde hay una pila de tarjetas representadas como caracteres en una cadena. Uno de ellos está dibujado (importar módulo aleatorio para la función random.choice (), que elige un carácter aleatorio en la cadena). Se crea una nueva cadena, cardsLeft, para contener las tarjetas restantes proporcionadas por la función de cadena replace () donde el último parámetro indica que solo se debe reemplazar una "tarjeta" por la cadena vacía ...


def kill_char(string, n): # n = position of which character you want to remove begin = string[:n] # from beginning to n (n not included) end = string[n+1:] # n+1 through end of string return begin + end print kill_char("EXAMPLE", 3) # "M" removed

He visto esto en alguna parte here .


from random import randint def shuffle_word(word): newWord="" for i in range(0,len(word)): pos=randint(0,len(word)-1) newWord += word[pos] word = word[:pos]+word[pos+1:] return newWord word = "Sarajevo" print(shuffle_word(word))