2015-01-29 3 views
0

У меня есть три предложения в списке:Я хочу разделить список строк в два одномерный массив

sentences = [] 
sentence.append("This is my first sentence.") 
sentence.append("This is my second sentence.") 
sentence.append("This is my third sentence.") 

Мне нужно разделить их, так что результат должен быть: [[ «Это», 'is', 'my', 'first', 'sentence.'], ['This', 'is', 'my', 'second', 'sentence.'], ['This', 'is », 'мой', 'третий', 'предложение']]

Я попытался назначить новый список, как следует:.

sentencesplit = [] 
for i in range(0, 3): 
    sentencesplit.extend(sentence[i].split()) 

Результатом является одномерный список, содержащий все расщепленные строки в предложениях. Я даже пытался объявить

sentencesplit[[]] 
for i in range(0, 3): 
    sentencesplit[i].extend(sentence[i].split()) 

, но это только приводит к появлению сообщения об ошибке.

Любая идея, как решить эту проблему?

+2

Вы можете разбить их, добавив себя. 'sentences.append (« Это мое первое предложение ». split())' –

+0

Почему вы используете 'extend'? Есть много полезных ответов, но если вы только изменили 'extend' на' append', он будет работать так, как вы просили. – MariusSiuram

ответ

0

Попробуйте использовать "добавить":

sentencesplit = [] 
for i in range(0, 3): 
    sentencesplit.append(sentence[i].split()) 
0
sentenceList = ["This is my first sentence.", 
       "This is my second sentence.", 
       "This is my third sentence."] 
result = [] 
for i in range(len(sentenceList)): 
    result.append(sentenceList[i].split(" ")) 

результат печати

[['This', 'is', 'my', 'first', 'sentence.'], 
['This', 'is', 'my', 'second', 'sentence.'], 
['This', 'is', 'my', 'third', 'sentence.']] 
0

Просто используйте простой map и lambda, чтобы сделать список:

>>> strs = ['This is an example','This is an example','This is an example'] 
>>> map(lambda split_str: split_str.split(' '), strs) 
[['This', 'is', 'an', 'example'], ['This', 'is', 'an', 'example'], ['This', 'is', 'an', 'example']] 

Или без lamdba:

>>> import string 
>>> strs = ['This is an example','This is an example','This is an example'] 
>>> map(string.split, strs) 
[['This', 'is', 'an', 'example'], ['This', 'is', 'an', 'example'], ['This', 'is', 'an', 'example']] 
+0

Ха, избили меня. Я собирался создать эту более короткую версию. +1 >> Edit: Похоже, у нас есть последовательный downvoter ... – Eithos

3
[sentence.split(' ') for sentence in sentences] 
+0

+1 для понимания списка простой и понятный однострочный. Я бы оставил '' '', поскольку это стандартный раскол, но ... Python Zen говорит, что это нормально, чтобы быть явным :) – MariusSiuram

0
sentences = [] 
sentences.append("This is my first sentence.".split()) 
sentences.append("This is my second sentence.".split()) 
sentences.append("This is my third sentence.".split()) 

Разделить их перед добавлением.

Смежные вопросы