2013-08-15 2 views
0
def nested_sum(L): 
    return sum(nested_sum(x) if isinstance(x, list) else x for x in L) 

이 다음 게시물에 제니에 의해 주어진 솔루션이었습니다을하는 비 이해리스트 방법이 될 것입니다 무엇 : sum of nested list in Python이 합

난 그냥 이해 목록을 사용하지 않고 다시 작성하려고하지만했다 그것을 얻을 수 없습니다. 내가 어떻게 할 수 있니?

답변

0

코드는 목록 이해가 아닌 generator expression을 사용합니다.

def nested_sum(L): 
    total = 0 
    for x in L: 
     if isinstance(x, list): 
      total += nested_sum(x) 
     else: 
      total += x 
    return total 
+0

@ezitoc : 아무것도 대답에서 누락 당신이 conditional expression뿐만 아니라 if 문으로 확장하려는 경우,

def nested_sum(L): total = 0 for x in L: total += nested_sum(x) if isinstance(x, list) else x return total 

또는 :

루프를 사용

+= 결과까지 추가 다시 받아 들일 수 없습니까? :-) –

+0

고마워, 나는 "_conditional expression_"키워드를 찾고 있었다. 나는 이것에 아주 새롭다. 그리고 _generator expression_은 저에게 새로운 것입니다. – ezitoc

+0

잘 처음에는 그렇다, 그렇지만 나는 단지 내가 해설 한 것을 찾았다. :) – ezitoc