본문 바로가기
⌨️ Algorithm/Python

[Python 문법] sum(), count(), map(), zip() 함수 정리

by Lucy Oh 2023. 2. 5.

문법 정리

sum()

sum(덧셈할 것, 처음에 더할 것)

 

만약 여기서 처음에 더할 것을 [ ] (빈 리스트) 로 준다면?

(두번째 인자의 default값이 0이므로 만약 두번째 인자를 [  ] 로 주지 않으면 error발생함.)

array = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
print(sum(array, []))

 

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 

 

즉 두번째 인자에 [  ] 를 줌으로써, 리스트 연산을 명확하게 알려주는 것!

[ (두번째 인자) ] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9] + [10, 11, 12] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 


count()

[list or string].count(char or substring, start, end)

 

문자열, 또는 리스트 안에서 찾고싶은 문자의 개수를 찾을 수 있다.

 

 

- 리스트

array = [1, 5, 4, 4, 5, 6]
print(array.count(4))   # 2
print(array.count(1))   # 1

 

- 문자열

string = "aabacdfk"
print(string.count("f"))   # 1
print(string.count("a"))   # 3

 


zip()과 아스테리스크(*)

zip()

여러개의 iterable 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자를 반환함.

 

nums = [1, 2, 3]
chars = ["A", "B", "C"]

for pair in zip(nums, chars):
    print(pair)

z = list(zip(nums, chars))
print(z)
(1, 'A')
(2, 'B')
(3, 'C')
[(1, 'A'), (2, 'B'), (3, 'C')]

 


풀기 연산자(*)와 함께 사용

다시 unzip이 가능함

nums = [1, 2, 3]
chars = ["A", "B", "C"]
pairs = list(zip(nums, chars))
print(pairs)

nums, chars = map(list, zip(*pairs))
print(nums)
print(chars)
[(1, 'A'), (2, 'B'), (3, 'C')]
[1, 2, 3]
['A', 'B', 'C']

 

 

심화 - 행렬에서의 행과 열 전환하기

row_col = [[2, 3, 4, 5], [6, 7, 8, 9], [10, 11, 12, 13]]
new = list(map(list, zip(*row_col)))
print(new)
[[2, 6, 10], [3, 7, 11], [4, 8, 12], [5, 9, 13]]

 

 

'⌨️ Algorithm > Python' 카테고리의 다른 글

[Algorithm] Week 7. 다이나믹 프로그래밍  (0) 2023.02.14
[Algorithm] Week 6. 이진 탐색  (0) 2023.02.07
[Algorithm] Week 5. 정렬  (0) 2023.01.31
[Algorithm] Week 4. DFS/BFS  (0) 2023.01.24
[Python] itertools 라이브러리  (0) 2023.01.19

댓글