python - sum() funtion
일단 기본 문법
#구글 번역
Return the sum of astartvalue (default: 0) plus aniterable of numbers
(start값 (기본값 : 0)과반복 가능한 숫자의 합을 반환합니다.)
일단 사용법
a =6 # = 1 + 2 + 3
이렇게 연속적으로 나타나는 숫자들(list, tuple, dict)의 각 요소들의 합을 구해 주는 함수이다.
거기에 start parameters(default = 0)이 추가된다면 start 항목을 더해주고 시작한다고 한다.
거기에 start parameters(default = 0)이 추가된다면 start 항목을 더해주고 시작한다고 한다.
a =16 # = 10 + 1 + 2 + 3
문제 발생
그런데 여기서 리스트안의 리스트가 들어가면서 문제가 발생했다.
하...이게 어려운게...죄다 영어라 어디 물어볼데가 마땅찮았다.
하...이게 어려운게...죄다 영어라 어디 물어볼데가 마땅찮았다.
a =:File "", line 1, in <module> TypeError: unsupported operand for +: 'int' and 'list'
이렇게 리스트 안에 리스트가 들어가는 경우
타입문제를 해결하기위해 오늘의 유머에 질문글을 올리고 많은 답변을 받았다.
list 와 'int' 의 타입이 맞지 않는다고 오류를 뿜어낸다.타입문제를 해결하기위해 오늘의 유머에 질문글을 올리고 많은 답변을 받았다.
해결 과정
답변을 보면
a =
이렇게 하라고 나오는데 왜 start 부분에 빈 리스트를 넣어주는지 이해가 가지 않았다.
친절한 답변으로 stackoverflow 글을 보고 대충 이해를 하게 되었다.
친절한 답변으로 stackoverflow 글을 보고 대충 이해를 하게 되었다.
python 에 기본적으로 들어있는 sum() 함수를 아래처럼 생각하면 된다.
total = startfor value in values:total = total + valuereturn total
여기서 보면,start는 더해줄 숫자가 올수도 있고, list, tuple, dict 의type이 올 수도 있다는 것이다.
즉start라는 인수를 데이터가 현재 가진 type 으로, 반환값을 담을 type 정도로 생각하고, 그 type에 하나씩 채워 나간다 라고 생각하는 것이다.(start 값은 반환값과 합계되는 항목에 대한 type 정의)
간단한 예
import random as rfrom collections import Counternum =num =print("랜덤수 : ", num)랜덤수 :print("랜덤수의 묶음 : ", )랜덤수의 합 :
참고사이트
#python3 #sum #함수 #iterable #start #stackoverflow #오늘의유머 #오유 #collections # Counter
댓글 없음:
댓글 쓰기