Na przykład jest ciąg znaków. EXAMPLE
.
Jak mogę usunąć środkową postać, tj. M
Z niej? Nie potrzebuję kodu. Chcę wiedzieć:
- Czy ciągi w Pythonie kończą się jakimś znakiem specjalnym?
- Który jest lepszy sposób - przesunięcie wszystkiego od prawej do lewej, zaczynając od środkowego znaku LUB utworzenie nowego ciągu znaków, a nie kopiowanie środkowego znaku?
Odpowiedzi:
W Pythonie ciągi są niezmienne, więc musisz utworzyć nowy ciąg. Masz kilka opcji, jak utworzyć nowy ciąg. Jeśli chcesz usunąć „M”, gdziekolwiek się pojawi:
Jeśli chcesz usunąć centralny znak:
Zapytałeś, czy ciągi kończą się znakiem specjalnym. Nie, myślisz jak programista C. W Pythonie ciągi są przechowywane wraz z ich długością, więc każda wartość bajtu, w tym
\0
, może pojawić się w ciągu.źródło
from __future__ import division
na początku skryptu sprawi, że wersja 2.X python będzie działać jak wersja 3.X""
nie oznacza pustej linii. Jeśli umieścisz go na liście i połączysz z nowymi wierszami, utworzy on pustą linię, ale istnieje wiele innych miejsc, w których możesz użyć pustego ciągu, który tego nie zrobi.To prawdopodobnie najlepszy sposób:
Nie martw się o zmiany postaci i tym podobne. Większość kodu Pythona odbywa się na znacznie wyższym poziomie abstrakcji.
źródło
M
może nie być wyjątkowy. W takim przypadku zastąpi to wszystkieM
s, prawda?n
wystąpienia, użyjoriginal.replace("M", "", n)
.Aby zastąpić określoną pozycję:
Aby zastąpić określony znak:
źródło
l
. Następnie dla pierwszej części powinno być ograniczenie dla posl-1 > pos >= 0
.Ciągi są niezmienne. Ale możesz przekonwertować je na listę, która jest zmienna, a następnie po jej zmianie przekonwertować listę z powrotem na ciąg.
Możesz również utworzyć nowy ciąg, jak pokazali inni, biorąc wszystko oprócz znaku, który chcesz z istniejącego ciągu.
źródło
str.replace
metody?Nie możesz, ponieważ ciągi w Pythonie są niezmienne .
Nie. Są one podobne do list znaków; długość listy określa długość łańcucha i żaden znak nie działa jako terminator.
Nie możesz zmodyfikować istniejącego ciągu, więc musisz utworzyć nowy zawierający wszystko oprócz środkowego znaku.
źródło
Użyj
translate()
metody:źródło
None
aby usunąć nie wydaje się pracy):translate( str.maketrans("<>", " ") )
str.maketrans( "", "", "<>")
istr.maketrans( {"<":None,">":None })
'EXAMPLE'.translate({ord("M"): None})
UserString.MutableString
Zmienny sposób:
źródło
Jak usunąć jedną postać z ciągu: Oto przykład, w którym znajduje się stos kart reprezentowanych jako znaki w ciągu. Jeden z nich jest rysowany (importuj losowy moduł dla funkcji random.choice (), która wybiera losowy znak w ciągu). Tworzony jest nowy ciąg, cardsLeft, do przechowywania pozostałych kart podanych przez funkcję ciągu replace (), gdzie ostatni parametr wskazuje, że tylko jedna „karta” ma zostać zastąpiona pustym ciągiem ...
źródło
Widziałem to gdzieś tutaj .
źródło
Oto, co zrobiłem, aby wyciąć „M”:
źródło
Jeśli chcesz usunąć / zignorować znaki w ciągu i na przykład masz ten ciąg,
„[11: L: 0]”
z odpowiedzi interfejsu API sieci Web lub czegoś takiego, np. pliku CSV, powiedzmy, że używasz żądań
zapętlić i pozbyć się niechcianych znaków:
Opcjonalny podział, a będziesz mógł odczytać wartości indywidualnie:
Teraz dostęp do każdej wartości jest łatwiejszy:
To zostanie wydrukowane
źródło
Aby usunąć jeden
char
lub jedensub-string
raz (tylko pierwsze wystąpienie):UWAGA: Tutaj
1
można zastąpić dowolnąint
liczbą wystąpień, które chcesz zastąpić.źródło
Możesz po prostu użyć listy.
Załóżmy, że masz ciąg znaków:
my name is
i chcesz usunąć znakm
. użyj następującego kodu:źródło
źródło
Innym sposobem jest funkcja
Poniżej znajduje się sposób na usunięcie wszystkich samogłosek z ciągu, po prostu przez wywołanie funkcji
źródło
Ciągi są niezmienne w Pythonie, więc obie opcje oznaczają to samo.
źródło