Как использовать любой элемент в списке как разделенное значение в 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()

Вы делаете новый список, без каких-либо кошек.

Другие вопросы по тегам