-3

有没有一种简单的方法可以理解以下内容

words = ["x", "mouse", "looloo", "google", "foo"]
terms = set()
for i in xrange(len(words)):
    terms = terms.union([" ".join(words[j:j + len(words) - i]) for j in xrange(len(words))])
return sorted(terms, key=len, reverse=True)
4

1 回答 1

3

您可以将多个循环按与使用嵌套 for 循环时相同的顺序列出它们,从而将它们放入列表推导中。

就像是:

terms = set([" ".join(words[j:j + len(words) - i])
               for i in xrange(len(words)) for j in xrange(len(words))])

但是我发现您的算法很难阅读,所以我什至不确定这会满足您的需求。

于 2012-09-12T20:15:11.973 回答