일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Dictionary
- floor
- convention
- 2557
- 파이썬
- SUM()
- project euler
- itertools
- BOJ
- flask
- 에라토스테네스의 체
- SUM
- timestamp
- 딕셔너리
- 네이밍
- mysql
- datetime
- enumerate
- list comprehension
- 큰 수 나누기
- lower_case_table_names
- Codeforces
- 소수
- ceil
- 리스트 컴프리헨션
- 자료구조
- 외래키
- python
- 세그먼트 트리
- FOREIGN KEY
Archives
- Today
- Total
늒네 기록
[python] sum() 함수에 대하여 본문
평소에 제일 많이 접하게 되는 sum() 함수 사용법은 다음과 같을 것이다.
l = [1, 2, 3, 4]
print(sum(l)) # 10
이때 sum의 역할은 리스트 l 안에 있는 정수들을 전부 더해준다.
그런데, sum에 두번째 인자를 넣을 수 있다. 두 번째 인자는 최초의 변수 역할을 해주는데, 아래의 코드를 보면 좀 더 명확하게 이해할 수 있다.
x = 5
l = [1, 2, 3, 4]
for num in l:
x+=num
print(x) # 15
y = 5
print(sum(l, y)) # 15
print(y) # 5
sum()함수가 주어진 이터레이터에 있는 값들을 모두 더해주는 거라면, +가 정의된 다른 타입들도 넣을 수 있는 것이 아닐까 의문을 가질 수 있다. 예를 들어,
1) string
x = '5'
l = ['1', '2', '3', '4']
for c in l:
x+=c
print(x) # 51234
y = '5'
print(sum(l, y)) # 여기서 TypeError: sum() can't sum strings [use ''.join(seq) instead] 발생
print(y)
흥미롭게도, sum()은 string 타입을 더할 수 없다는 에러가 나온다! 에러에 언급된 join에 대해서는 나중에 다루도록 하고, 다음으로 넘어가보자.
2) list
x = [5]
l = [[1], [2], [3], [4]]
for ll in l:
x+=ll
print(x) # [5, 1, 2, 3, 4]
y = [5]
print(sum(l, y)) # [5, 1, 2, 3, 4]
print(y) # [5]
리스트는 원하는대로 더해진다. 즉, 이를 활용하면 여러 리스트가 주어져있고 이들을 하나로 합치고 싶을때 다음의 방법을 사용할 수 있다.
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
print(sum(l,[])) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
빈 리스트에서 시작해서 차례대로 더하는 것이므로 주석에 있는 것과 같은 결과가 나온다.
반응형
'언어 공부 기록 > python' 카테고리의 다른 글
[python] eval()함수에 대하여 (0) | 2020.09.30 |
---|---|
[python] enumerate()함수에 대하여 (0) | 2020.09.26 |
[python] list comprehension - 2 (0) | 2020.09.12 |
[python] string을 list()하면 어떻게 될까? (0) | 2020.09.11 |
[python] dictionary, get 함수 활용법 1 (0) | 2020.09.09 |
Comments