2013-03-06 6 views
1

입력 (목록)은 [[1,2],[5,6],[4,6]]과 비슷한 목록입니다. 나는 그것이 짝수 또는 홀수인지 테스트하기 위해 전체 행을 함께 추가하려고합니다.sum 함수를 사용하는 데 문제가 있습니다.

def evenrow(list): 
    for row in list: 
     for item in row: 
      newNums+=item 
      n=sum(newNums) 
      print(n) 

답변

2

먼저 'list'를 변수 이름으로 사용하지 마십시오. 두 번째 당신은 목록에 대한 int 값을위한 합계를 호출하지 않으며 그 이유는 오류가 발생합니다. 코드를 확인하십시오.

확실하지만 같은 코드가 있습니다 보인다되지 않음 : n=sum(newNums) : 당신은 다음 코드 줄을 필요가 없습니다

def evenrow(list): 
    for row in list: 
     value = sum(row) 
     if values is even: # put your condition here 
      # do something 
     else: 
      print "Value is odd" 
+0

도움을 주셔서 감사합니다. – user2124939

0

. newNums += item 행에있는 행의 모든 ​​항목을 요약했습니다. 둘째, 코드에서 사용하기 전에 newNums을 선언해야합니다. 그래서, 코드의 수정 버전은 다음과 같이 표시됩니다 BTW

def evenrow(list): 
    for row in list: 
     newNums = 0 
     for item in row: 
      newNums += item 
     print(newNums) 

을 : 당신은 그렇지 않으면 아무도 당신의 새로운 질문에 대답하는 시간을 보내는 것, 이전 몇 가지 질문에 대한 답변을 받아들이는 것을 고려해야한다.

+0

응답 해 주셔서 감사합니다. 내 두 가지 이전 질문 중 하나가 종료되어 게시를 중단했습니다. 다른 한편으로 나는 내가 얻은 응답에 대해 감사를 표시했다. 내가 뭐 놓친 거 없니? 미안해, 내가 새거야. – user2124939

+0

도움이 된 답변을 볼 수 있다면 답안 점수 아래에있는 체크 표시를 눌러 수락 할 수 있습니다. 따라서이 틱은 초록색으로 변합니다. 그것은 당신이 대답을 수락했다는 것을 의미하며, 지역 사회는 당신을 들여다 보지 않고 다른 질문에 답할 수 있습니다. :) [Artsiom Rudzenka] (http://stackoverflow.com/users/781150/artsiom-rudzenka) [당신에게 좋은 대답을 준 것 같습니다] (http://stackoverflow.com/a/15238916/885028), 그래서 당신은 그것을 받아 들일 수 있습니다. – aga

1

그냥 다른 방법 :

외부 sumlst의 각 항목에 sum을 적용 map의 모든 항목을 추가합니다

def evenrow(lst): 
    return sum(map(sum,lst))%2 == 0 #True if even, False otherwise. 

이이 방식으로 작동합니다. python2에서 map은 list 객체를 반환하고, python3에서는 map 객체를 반환합니다. 이것은 map에있는 모든 항목을 합한 바깥 쪽 sum 함수로 전달됩니다.

def evenrow(lst): 
    return sum(itertools.chain(*a)) % 2 == 0 

chain 개체로, 모두 함께 a의 항목합니다 (하위 목록의 각), 체인을 확장합니다. 그런 다음 모든 항목을 합치고 합계가 짝수인지 여부를 결정합니다.

+0

감사합니다. 전에 map 메소드를 사용하지 않았지만 코드는 eligant로 보입니다. 다시 한 번 감사드립니다. – user2124939

관련 문제