Как я могу нарезать строку, сравниваемую с моим списком.
string = "how to dye my brunet hair to blonde? "
list = ['how', 'how to',...]
Я хочу, чтобы код удалял "как" и печатал остальные.
dye my brunet hair to blonde?
Любая идея?
Это должно убедиться, что замена выполняется только в начале. Однако не очень эффективно. Это может помочь, если будет ясно, что вы хотели сделать.
string = "how to dye my brunet hair to blonde? "
list = ['how', 'how to',"bananas"]
list.sort(key=len,reverse=True) # sort by decreasing length
for sample in string, "bananas taste swell", "how do you do?":
for beginning in list:
if sample.startswith(beginning):
print sample[len(beginning):]
break
else: # None of the beginnings matched
print sample
In [1]: s = "how to dye my brunet hair to blonde? "
In [2]: print s.replace("how to", "")
dye my brunet hair to blonde?
При использовании этого способа replace
заменит все вхождения его первого аргумента вторым аргументом. Он также принимает необязательный третий аргумент, который ограничивает количество произведенных замен. Это полезно, если, например, вы хотите заменить первое вхождение "как".
>>> string[len('how to'):]
' dye my brunet hair to blonde? '
Поскольку другие ответы не учитывают список:
input = "how to be the best python programmer of all time"
#note that the longer ones come first so that "how" doesn't get cut and then "how to" never exists
stopwords = ['how to', 'how']
for word in stopwords:
input = input.replace(word, '', 1)
print input