Python列表理解麻烦

时间:2011-08-02 00:49:08

标签: python list-comprehension

我有一些文本操作要做,这是一个执行它的for循环:

 for p in paras[:]:

     pidx = paras.index(p)

     for sent in p:
         sidx = p.index(sent)

         sent = ' '.join(w[0] for w in sent)
         paras[pidx][sidx] = sent

     paras[pidx] =  'start' + ' '.join(paras[pidx]) + 'end'

这是我的列表理解:

 [' '.join(w[0] for w in sent) for p in paras for sent in p]

这会返回一个大的句子列表,我需要基于段落(p)的单独列表,或者有一些方法来表示每个段落的结束位置。是否有一些性感的方式来做到这一点?

2 个答案:

答案 0 :(得分:2)

嵌套LC

[[' '.join(w[0] for w in sent) for sent in p] for p in paras]

应将每个段落作为单独的列表

答案 1 :(得分:1)

如果一个句子是一个单词列表,那么:

["see", "spot", "run"]

是一个句子。如果一个段落是一个句子列表,那么:

[ ["see", "spot", "run"], ["see", "dick", "run"], ["see" "dick", "run", "after", "spot"] ]

是一个段落。您只需要构建一个单词列表列表,而不是单词列表。