Answer the question
In order to leave comments, you need to log in
How to remove all words starting with the letter "m" from a string?
Hello!
For 2 days now I can not win the task:
# A line from a poem is given:
# Remove from the line all words starting with the letter "m".
# Print the result to the screen as a string.
# Hint: remember to modify lists.
a = "Мой дядя самых честных правил, Когда не в шутку занемог, \
Он уважать себя заставил И лучше выдумать не мог"
a = a.split()
for i in range(len(a)): # 0,19
if a[i][0] == "М" or a[i][0] == "м":
del a[i]
IndexError: list index out of range
a = "Мой дядя самых честных правил, Когда не в шутку занемог, \
Он уважать себя заставил И лучше выдумать не мог"
a = a.split()
for i in range(len(a) - 1): # 0,19
if a[i][0] == "М" or a[i][0] == "м":
del a[i]
Answer the question
In order to leave comments, you need to log in
Regular season:
import re
p = re.compile(r"\bм.*?\b", re.I) # \b — это граница слова, есичё
re.sub(p, "" , s)
" ".join(x for x in s.split() if not x.startswith(("м", "М")))
Why don't you want to create a new list?
a = "Мой дядя самых честных правил, Когда не в шутку занемог, \
Он уважать себя заставил И лучше выдумать не мог"
res = [i for i in a.lower().split() if not i.startswith('м')]
a = "Мой дядя самых честных правил, Когда не в шутку занемог, \
Он уважать себя заставил И лучше выдумать не мог"
a = a.lower().split()
i = 0
while i < len(a):
if a[i].startswith('м'):
del a[i]
continue
i += 1
result = ' '.join(filter(lambda w: w[0] not in ["М", "м"], a.split()))
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question