是否有一种简单的方法可以理解以下内容
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)
答案 0 :(得分:3)
您可以在列表推导中放置多个循环,方法是按照与使用嵌套for循环时相同的顺序列出它们。
类似的东西:
terms = set([" ".join(words[j:j + len(words) - i])
for i in xrange(len(words)) for j in xrange(len(words))])
但我觉得你的算法很难读懂,所以我甚至不确定这会做你想要的。