Как использовать любой элемент в списке как разделенное значение в Python?
Я хочу сделать что-то с эффектом:
x = [" ","cats"]
def function(a):
a.split([any of the elements in x])
return a
Как бы я заставил Python принять любой из элементов в x в качестве аргумента (чтобы он разделялся на пробелы и кошки)?
Изменить: Извините, я должен был, вероятно, указать: a ожидается, что список
(Мне очень, очень жаль, что я не ясно.)
input - a = "Я так сильно люблю кошек" ожидаемый результат - ["I", "love","so", "much"]
По сути, я хочу, чтобы он выполнял функцию разделения для "", а затем для "кошек".
3 ответа
def split_many(s, *words):
return filter(bool, reduce(lambda s, word:
s.replace(word, words[0]), words, s).split(words[0]))
print split_many('I love cats so much', 'cats', ' ')
Вот один из способов. Не самый читаемый подход, но он выполняет свою работу.
import re
x = [" ", "cats"]
pattern = "|".join(x)
re.split(pattern, "I love cats very much")
s = "I love cats so much"
x = [" ", "cats"]
for delim in x:
s = s.replace(delim, " ")
print s.split()
Вы делаете новый список, без каких-либо кошек.