Jak mogę usunąć cyfry z ciągu?Usuwanie numerów ze stringów
Odpowiedz
byłoby to pracować dla twojej sytuacji?
>>> s = '12abcd405'
>>> result = ''.join([i for i in s if not i.isdigit()])
>>> result
'abcd'
To sprawia, że korzystanie z listowego, a co się tutaj dzieje, jest podobna do tej struktury:
no_digits = []
# Iterate through the string, adding non-numbers to the no_digits list
for i in s:
if not i.isdigit():
no_digits.append(i)
# Now join all elements of the list with '',
# which puts all of the characters together.
result = ''.join(no_digits)
Jak @AshwiniChaudhary i @KirkStrauser podkreślić, faktycznie nie trzeba używać nawiasy w jedno-liniowej, czyniąc kawałek wewnątrz nawiasów wyrażeniem generatora (bardziej wydajnym niż zrozumienie listy). Nawet jeśli to nie pasuje wymagania dla Twojego zadania, to jest coś należy przeczytać o końcu :):
>>> s = '12abcd405'
>>> result = ''.join(i for i in s if not i.isdigit())
>>> result
'abcd'
nauczył się nowy łańcuch Funkcjonuj już dziś, dzięki rocketdonkey! –
@SeanJohnson Awesome! Jestem pewien, że dowiedziałem się o tym od kogoś innego na tej stronie, więc cykl jest kompletny :) – RocketDonkey
@RocketDonkey nie ma potrzeby "[]' –
Chciałbym użyć wyrażenia regularnego do osiągnięcia tego celu, ale skoro można użyć tylko list, pętle, funkcje itp ..
oto co wymyśliłem:
stringWithNumbers="I have 10 bananas for my 5 monkeys!"
stringWithoutNumbers=''.join(c if c not in map(str,range(0,10)) else "" for c in stringWithNumbers)
print(stringWithoutNumbers) #I have bananas for my monkeys!
Jeśli rozumiem pytanie rację, jeden sposób, aby zrobić to przełamać ciąg w znaki i następnie sprawdzić każdy char w tego łańcucha za pomocą pętli, czy jest to ciąg znaków lub numer, a następnie, jeśli ciąg zapisać go w zmiennej, a następnie po zakończeniu pętli, wyświetla, że użytkownikowi
For-loop automatycznie iteruje każdy ciąg znaków, więc nie ma potrzeby dzielenia łańcucha na znaki. –
Co o tym:
out_string = filter(lambda c: not c.isdigit(), in_string)
Powiedz, że to twój niesformatowany ciąg znaków, a następnie uruchom
st_nodigits=''.join(i for i in st if i.isalpha())
jak wspomniano powyżej. Ale zgaduję, że trzeba coś bardzo prostego więc powiedzieć s jest ciąg i st_res jest ciągiem bez cyfr, to tutaj jest kod
l = ['0','1','2','3','4','5','6','7','8','9']
st_res=""
for ch in s:
if ch not in l:
st_res+=ch
Nie jestem pewien, czy nauczyciel pozwala na stosowanie filtrów ale ...
filter(lambda x: x.isalpha(), "a1a2a3s3d4f5fg6h")
returns-
'aaasdffgh'
O wiele skuteczniejsza niż zapętlanie ...
Przykład:
for i in range(10):
a.replace(str(i),'')
Zaledwie kilka (inni sugerowali niektórzy z nich)
Metoda 1:
''.join(i for i in myStr if not i.isdigit())
Metoda 2:
def removeDigits(s):
answer = []
for char in s:
if not char.isdigit():
answer.append(char)
return ''.join(char)
Metoda 3:
''.join(filter(lambda x: not x.isdigit(), mystr))
Metoda 4:
nums = set(map(int, range(10)))
''.join(i for i in mystr if i not in nums)
Metoda 5:
''.join(i for i in mystr if ord(i) not in range(48, 58))
Warto byłoby pokazać na nich porównanie wydajności. –
I, po prostu wyrzucić go w miksie, jest często zapomniane str.translate
która będzie działać o wiele szybciej niż w przypadku zapętleń/wyrażeń regularnych:
Dla Python 2:
from string import digits
s = 'abc123def456ghi789zero0'
res = s.translate(None, digits)
# 'abcdefghizero'
Pythona 3:
from string import digits
s = 'abc123def456ghi789zero0'
remove_digits = str.maketrans('', '', digits)
res = s.translate(remove_digits)
# 'abcdefghizero'
Po prostu niesamowite! Nie wiedziałem tego. – JayJay123
To podejście nie działa w języku Python3. Zamiast tego: ''abc123def456ghi789zero0'.translate ({ord (k): Brak dla k w cyfrach})' – valignatev
Najlepsze rozwiązanie dla Python2. –
- 1. ASP - Usuwanie podwójnych cudzysłowów ze stringów
- 2. Usuwanie niepodzielonych spacji ze stringów za pomocą Pythona
- 3. PHP usuwa symbole ze stringów
- 4. PHP. Usuń linki ze stringów
- 5. Usuwanie numerów indeksu w QTablewidget
- 6. Ruby usuń puste linie ze stringów
- 7. Python - jak usunąć ukryte znaki ze stringów?
- 8. utwórz obiekt json ze stringów z rubinem
- 9. Jak usunąć nawiasy ze stringów w php?
- 10. reinterpretuj rzut tablic ze stringów na int
- 11. Chcesz usunąć podwójne cudzysłowy ze stringów
- 12. usuwanie duplikatów ze słownika
- 13. usuwanie tablicy ze sterty
- 14. Usuwanie nawiasów ze stringa
- 15. php regex do wyodrębnienia wielu dopasowań ze stringów
- 16. Android java uzyskać tag obrazu HTML ze stringów
- 17. Wyciągnij kwotę w dolarach ze stringów - regex w PHP
- 18. Konwersja serii pand ze stringów na unikalne int
- 19. Magento - Usuwanie numerów w url klucz/produktu url
- 20. Usuwanie obiektów NULL ze środowiska
- 21. Usuwanie spacji ze zmiennej wsadowej
- 22. Usuwanie poziomu ze pand MultiIndex
- 23. Usuwanie węzła ze środka sterty
- 24. Wielkość strumienia stringów
- 25. Porównanie stringów serwera SQL
- 26. Porównanie stringów PostgreSQL
- 27. Porównanie bash stringów
- 28. Mysql Usuwanie wielu losowych wierszy ze stołu
- 29. Usuwanie wpisów ze słownika na podstawie wartości
- 30. Usuwanie wiadomości SMS ze skrzynki odbiorczej
z 're':' Wynik = re.sub (R '[0-9] +', '', s) ' –