2014-11-05 2 views
0

Это мой текущий код:Python, как разбить строку в списке

def poisci_pare(besedilo): 
    import re 
    seznam = re.split("[.]", besedilo) 
    return seznam 

это возвращает (мы предполагаем, что предложения всегда заканчиваются точкой .)

poisci_pare("Hello world. This is great.") 
>>>output: ["Hello world", "This is great"] 

Что бы я должны написать, чтобы получить питона, чтобы разделить строку, как это:

poisci_pare("Hello world. This is great.") 
>>>output: [["Hello", "world"], ["This", "is", "great"]] 
+1

Im действительно удивлён, что работал ... '.' обычно означает любой символ в регулярных выражениях ... Я думаю, когда его в box bracket он рассматривает это как литерал ... –

+0

Да, я не думал, что это сработает в первую очередь, но после некоторых экспериментов с re.split я получил его для работы отлично. – peroxy

ответ

3
def poisci_pare(text): 
    sents = text.split('.') 
    answer = [sent.split() for sent in sents if sent] 
    return answer 

Выход:

In [8]: poisci_pare("Hello world. This is great.") 
Out[8]: [['Hello', 'world'], ['This', 'is', 'great']] 
0

это также будет делать трюк:

input = "Hello world. This is great." 
print [s.split() for s in input.split('.') if s.split()] 
[['Hello', 'world'], ['This', 'is', 'great']] 
Смежные вопросы