Hoe een teken uit een string te verwijderen met Python

Er is bijvoorbeeld een string. EXAMPLE.

Hoe kan ik het middenkarakter verwijderen, d.w.z., M? Ik heb de code niet nodig. Ik wil het weten:

  • doen snaren in Python eindigen in een speciaal karakter?
  • die een betere manier is – alles met het schakelen van alles naar links vanaf het middenkarakter of de oprichting van een nieuwe string en kopieert het middenkarakter niet?

Antwoord 1, Autoriteit 100%

In Python zijn snaren onveranderlijk, dus je moet een nieuwe reeks maken. Je hebt een paar opties voor het maken van de nieuwe reeks. Als u de ‘M’ wilt verwijderen waar het ook verschijnt:

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

Als u het centrale teken wilt verwijderen:

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

U vroeg of de snaren eindigen met een speciaal teken. Nee, je denkt als een C-programmeur. In Python zijn snaren opgeslagen met hun lengte , dus elke bytewaarde , inclusief \0, kan in een string verschijnen.


Antwoord 2, Autoriteit 10%

Om een ​​specifieke positie te vervangen:

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

Om een ​​specifiek teken te vervangen:

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

Antwoord 3, Autoriteit 10%

Dit is waarschijnlijk de beste manier:

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

Maak je geen zorgen over het verschuiven van personages en dergelijke. De meeste Python code vindt plaats op een veel hoger niveau van abstractie.


Antwoord 4, Autoriteit 4%

Strings zijn onveranderlijk. Maar je kunt ze converteren naar een lijst die is veranderlijk, en zet dan de lijst terug naar een string nadat je het hebt veranderd.

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

U kunt ook een nieuwe string te creëren, zoals anderen hebben aangetoond, door het nemen van alles wat behalve het teken dat u wilt van de bestaande string.


Antwoord 5, Autoriteit 2%

Hoe kan ik het midden karakter, dat wil zeggen, M te verwijderen uit het?

U kan niet, omdat strings in Python zijn onveranderlijke .

Do strings in Python einde in een speciaal teken?

Nee. Ze zijn vergelijkbaar met lijsten van karakters; de lengte van de lijst bepaalt de lengte van de tekenreeks en geen karakter fungeert als terminator.

Wat is een betere manier -? Verschuift alles van rechts naar links vanaf het midden karakter of het creëren van een nieuwe string en niet kopiëren van de middelste teken

U kunt de bestaande reeks aan te passen, zodat u een nieuw exemplaar met alles behalve de middelste teken moet maken.


Antwoord 6, Autoriteit 2%

Gebruik de translate()Methode:

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

Antwoord 7

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

Ik heb dit ergens hier gezien.


Antwoord 8

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

Hoe een teken uit een string te verwijderen:
Hier is een voorbeeld waar een stapel kaarten is weergegeven als tekens in een tekenreeks.
Een van hen wordt getekend (importeer de willekeurige module voor de functie Random.choice (), die een willekeurig teken in de tekenreeks opneemt).
Een nieuwe string, kaartenLetter, is gemaakt om de resterende kaarten te houden die worden gegeven door de stringfunctie vervangen () waar de laatste parameter aangeeft dat slechts één “kaart” wordt vervangen door de lege string …


Antwoord 9

Op Python 2 , u kunt Gebruikersstring.mutablestring om het op een mutable manier te doen:

>>> import UserString
>>> s = UserString.MutableString("EXAMPLE")
>>> type(s)
<class 'UserString.MutableString'>
>>> del s[3]    # Delete 'M'
>>> s = str(s)  # Turn it into an immutable value
>>> s
'EXAPLE'

MutableStringis verwijderd in Python 3.


Antwoord 10

Een andere manier is met een functie,

Hieronder is een manier om alle klinkers uit een string te verwijderen, alleen door de functie

te bellen

def disemvowel(s):
    return s.translate(None, "aeiouAEIOU")

Antwoord 11

Hier is wat ik deed om de “M” te plakken:

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

Antwoord 12

Om een ​​charof een sub-stringeenmaal (alleen de eerste voorval):

te verwijderen

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

Opmerking: hier 1kan worden vervangen door elke intvoor het aantal voorkomen dat u wilt vervangen.


Antwoord 13

U kunt eenvoudigweg begrijpen.

Neem aan dat u de tekenreeks hebt: my name isen u wilt tekens verwijderen M. Gebruik de volgende code:

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

Antwoord 14

Als u tekens in een tekenreeks wilt verwijderen / negeren, en bijvoorbeeld, hebt u deze string,

“[11: l: 0]”

Vanaf een web-API-reactie of zoiets, zoals een CSV-bestand, laten we zeggen dat u verzoeken

gebruikt

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

Loop en ontdoen van ongewenste tekens:

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

Optioneel gesplitst, en u kunt waarden afzonderlijk lezen:

listofvalues = line.split(':')

Nu toegang krijgen tot elke waarde is eenvoudiger:

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

Hiermee wordt

afgedrukt

11

l

0


Antwoord 15

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))

Antwoord 16

Strings zijn onveranderlijk in Python, zodat beide opties in principe hetzelfde betekenen.

Other episodes