首页 > 解决方案 > 在 python 中迭代列表时扩展新列表中的元素

问题描述

我有一个语料库列表,

corpus = ["I want to watch movie. I like it.", "Lets watch this movie together."]

首先,我想迭代“语料库”列表,调用一个名为 createtok 的函数并将所有元素扩展为一个新列表。之后,我想重用新列表中的所有元素以及前一个函数为“语料库”列表中的每个元素调用的所有元素。

这是我的代码:

if __name__ == '__main__':
totaltok = []

corpus = ["I want to watch movie. I like it.", "Lets watch this movie together."]  

for corpuslist in corpus:
    tok = createtok(corpuslist)

    totaltok.extend(tok)

for corpuslist in corpus:

    tok = createtok(corpuslist)
    vtok = generate_v(corpus, tok, totaltok)

    print ("{0}\n{1}\n".format(tok,vtok))

我可以知道,有没有办法简化这段代码?

标签: pythonlistloops

解决方案


我的意思是你的解决方案很清楚。您可以使用所有 python 魔法来编写更少的代码,但这不会使其更具可读性。

举这个例子 - 当然,它稍微轻一点,但是把它交给一个初级(甚至可能是一个中级开发者,看着他们上釉)

totaltok = list(map(lambda x: createtok(x), corpus))

for tok in map(lambda x: createtok(x), corpus):
    vtok = generate_v(corpus, tok, totaltok)
    print("{0}\n{1}\n".format(tok, vtok))

坚持清晰


推荐阅读