게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파이썬 - sum 제가 이해한게 맞나요?
게시물ID : programmer_20361짧은주소 복사하기
작성자 : 아이젠
추천 : 0
조회수 : 594회
댓글수 : 3개
등록시간 : 2017/04/22 16:06:30
옵션
  • 본인삭제금지
먼저 아래 질문글...http://todayhumor.com/?programmer_20347

여기서 sum 의 내용이 이해가 가질 않아 직접 테스트 해 보았습니다.
===========================
import random as r
from collections import Counter

num = []
num = [r.sample(range(1, 13),5) for i in range(10)]

print("랜덤수 : ", num)

print("랜덤수의 합 : ", sum(num, []))
==============================
이렇게 찍으니
===============================
랜덤수 :  [[1, 6, 5, 2, 3], [3, 12, 2, 11, 7], [12, 8, 7, 5, 10], [4, 8, 3, 1, 7], [10, 8, 4, 1, 9], [4, 5, 11, 10, 3], [8, 5, 10, 1, 9], [10, 1, 4, 9, 7], [3, 5, 12, 2, 4], [7, 5, 4, 10, 8]]
랜덤수의 합 :  [1, 6, 5, 2, 3, 3, 12, 2, 11, 7, 12, 8, 7, 5, 10, 4, 8, 3, 1, 7, 10, 8, 4, 1, 9, 4, 5, 11, 10, 3, 8, 5, 10, 1, 9, 10, 1, 4, 9, 7, 3, 5, 12, 2, 4, 7, 5, 4, 10, 8]
===============================
이렇게 나오네요.
리스트를 sum 함수로 더하면 리스트 내의 리스트들을 모조리 하나의 리스트(1차원화) 하는것을 봤습니다.

여기서
print("랜덤수의 합2 : ", sum(num))

이렇게 해 버리니
Traceback (most recent call last):
  File "/home/izen/test/test.py", line 10, in <module>
    print("랜덤수의 합2 : ", sum(num))
TypeError: unsupported operand type(s) for +: 'int' and 'list'
(list 형과 int 형을 + 할 수 없다)라는 오류가 나와서 이를 해결하기위해 뒤에 [] 형식을 start 로 주는 것인가요?

sum 이 생각보다 어려워서 이해가 복잡하네요.

다시 말하면...
sum(num, [])
"리스트 내의 모든 숫자를 더하되 오류가 나지 않도록 [] (리스트)형식으로 더하겠다.(묶겠다)" 라고 이해하는게 맞는건지요?

다른 말로...
sum(iterable[, start]) 함수에서 start가 형식을 맞춰 줄 수 있는 역할을 한다고 봐도 무방한 것인가요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호