Если вы хотите разбить строку на основе нескольких разделителей, как в вашем примере, вам понадобится использовать модуль re
, несмотря на ваши причудливые возражения, например:
>>> re.split('[?.,]', test)
['hello', 'how are you', 'I am fine', 'thank you', ' And you', '']
возможно получить аналогичный результат, используя split
, но вам нужно вызывать split один раз для каждого символа, и вам нужно перебирать результаты предыдущего разделения.Это работает, но уродливо:
>>> sum([z.split()
... for z in sum([y.split('?')
... for y in sum([x.split('.')
... for x in test.split(',')],[])], [])], [])
['hello', 'how', 'are', 'you', 'I', 'am', 'fine', 'thank', 'you', 'And', 'you']
При этом используется sum()
для выравнивания списка, возвращенного предыдущей итерацией.