找回密码
 立即注册
ampnew列表算法 | 软件设计/软件工程 2022-05-04 239 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
  1. <div>假设我有以下结构:</div><div>
  2. </div><div>t = [['I will','take','care'],['I know','what','to','do']]</div><div>
  3. </div><div>正如您在第一个列表中看到的,我有 'I will' 并希望它们分成两个元素 'I' 和 'will' ,结果是:</div><div>
  4. </div><div>[['I', 'will', 'take', 'care'], ['I', 'know', 'what', 'to', 'do']]</div><div>
  5. </div>快速脏算法如下:new = []


  6. for sent in t:
  7.   new = []
  8.   for word in sent:
  9.     temp = word.split(' ')
  10.     for item2 in temp:
  11.       new.append(item2)


  12.   train_text_new.append(new)
复制代码

但我想知道是否有更易读、更有效的算法来解决这个问题。

回答
您可以制作一个简单的生成器来生成拆分,然后在列表推导中使用它:
  1. t = [['I will','take','care'],['I know','what','to','do']]

  2. def splitWords(l):
  3.     for words in l:
  4.         yield from words.split()

  5. [list(splitWords(sublist)) for sublist in t]
  6. # [['I', 'will', 'take', 'care'], ['I', 'know', 'what', 'you', 'to', 'do']]
复制代码






上一篇:@manytomony 没有连接表(旧数据库)
下一篇:Django-改进对foreignKey字段组成的查询