- <div>假设我有以下结构:</div><div>
- </div><div>t = [['I will','take','care'],['I know','what','to','do']]</div><div>
- </div><div>正如您在第一个列表中看到的,我有 'I will' 并希望它们分成两个元素 'I' 和 'will' ,结果是:</div><div>
- </div><div>[['I', 'will', 'take', 'care'], ['I', 'know', 'what', 'to', 'do']]</div><div>
- </div>快速脏算法如下:new = []
- for sent in t:
- new = []
- for word in sent:
- temp = word.split(' ')
- for item2 in temp:
- new.append(item2)
- train_text_new.append(new)
复制代码
但我想知道是否有更易读、更有效的算法来解决这个问题。
回答
您可以制作一个简单的生成器来生成拆分,然后在列表推导中使用它:
- t = [['I will','take','care'],['I know','what','to','do']]
- def splitWords(l):
- for words in l:
- yield from words.split()
- [list(splitWords(sublist)) for sublist in t]
- # [['I', 'will', 'take', 'care'], ['I', 'know', 'what', 'you', 'to', 'do']]
复制代码
|