2017-03-27 7 views
1

를 사용하지 않고 붙박이 합()을 사용하지 않고 각 행의 합을 찾기 위해 중첩 된 목록을 사용할 필요가합 퀴즈 질문에 대해 붙박이 합()

내 코드 (1)

def row_sums(square): 
    """ Takes a nested list and returns the sum of the row""" 
    row_1 = square[0] 
    for sum_1 in row_1: 
     for sum_r_1 in sum_1: 
      sum_row_1 = 0 
      sum_r_1 += sum_row_1 
      return sum_r_1 

이 가진 문제는 내가는 int 객체가 반복 가능한

또는

내 코드가 아닙니다 취득 (2)

,691 363,210
def row_sums(square): 
    """ Takes a nested list and returns the sum of the row""" 
    row_1 = square[0] 
    for sum_1 in row_1: 
      sum_r_1 = 0 
      sum_r_1 += sum_1 
      return sum_r_1 

I 만이 경우 1 행 내의 목록의 첫번째 아이템을 얻을 수 2

퀴즈 서버

square = [ 
    [2, 7, 6], 
    [9, 5, 1], 
    [4, 3, 8] 
] 
print(row_sums(square)) 

예상 결과 [15 (15)로부터 입력되는 15]

나는 메신저 기압려고 첫 번째 행 무엇인지 알고,하지만 난 내가 쉽게 다른 행을 할 수있는 일단

+1

아마'데프 totally_not_the_built_in_sum (항목) 바보 같은 것을 써서 : (. 항목에 대한 '+'에 가입 (STR (IT))) 반환 평가를'내가 로 변경 생각 didnt는 –

답변

1

You'r 전자 매우 가까이 :

def row_sums(square): 
    sums = [] 
    for row in square: 
     rowsum = 0 
     for num in row: 
      rowsum += num 
     sums.append(rowsum) 
    return sums 
+0

x = [] 지금은 바보 같아요. –

1

당신이 return에게 다음 0에 다시 sum_r_1을 설정 ... 그래서 간다

for sum_1 in row_1: 
    sum_r_1 = 0 
    sum_r_1 += sum_1 
    return sum_r_1 

새 번호로 갈 때마다 때문에 작동하지 않습니다 코드는 첫 번째 숫자를 통해 추가 한 다음 즉시 다른 숫자를 보지 않고 반환합니다.

sum_r = 0 
for sum_1 in row: 
    sum_r += sum_1 
return sum_r 

이 당신에게 첫 번째 행을 얻을 것이다 :

대신, 당신은 시작 값을 설정하고 외부 루프를 을 반환합니다. 나는 SO에서 완전한 해결책을 취하기보다는 다른 시도를 제안 할 것이다.

1

여기에 나열된 목록을 반복하고 내부 목록 요소를 함께 추가하여 다른 목록에 추가하는 간단한 방법이 있습니다.

square =[ 
    [2,2,2], 
    [1,1,1], 
    [3,3,3] 
] 
sumLine=[] 

for i in range(len(square)): 
    s =0 
    for n in square[i]: 

     s = s + n 


    sumLine.append(s) 
    #results in [6, 3, 9]