2012-09-12 1 views
-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) 
+0

외부 for 루프를 목록 이해력에도 넣으시겠습니까? –

+0

달성하고자하는 것에 대한 설명을 입력하고 입력과 원하는 출력을 제공하십시오. 그렇지 않으면 사람들이 도움이되지 않을 것입니다. – kgr

답변

3

를 이해하는 쉬운 방법이있다. 같은

뭔가 :

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

하지만 그대로 읽을 알고리즘 오히려 하드를 찾으, 그래서 당신이 원하는 것을이 할 것조차 확실하지 않다.

+0

답해 주셔서 감사합니다. 그것은 내가 찾고 있었던 것이다 : D – smor

+0

나는 이것을'indices = itertools.combinations (range (len (words) +1), 2);라고 쓰고 싶다. terms = sorted (목적에 따라 i, j에 대한 i, j), key = len, reverse = True)', IIUC, 또는'set'없이 sorted (set (' 'set'을 사용하면 중복은 제거되지만 최종 순서는 비 결정적입니다. – DSM

+0

그리고 이것은 APL의 20 자일 수 있습니다. 그러나 정확하게 읽을 수는 없습니다. –