728x90
Packing
- 함수가 받을 인자의 개수를 유연하게 지정하기 위해 사용!
- 인자로 받은 여러 개의 값을 하나의 객체로 합쳐서 받을 수 있다.
- 가변 인자
- 매개 변수 앞에 *
- 튜플 형태로 처리
def func(*args):
return args
print(func(1, 2))
- 위의 코드를 실행하면 (1, 2)와 같이 튜플 형태로 출력된다.
- 가변 키워드 인자
- 매개 변수 앞에 **
- 딕셔너리 형태로 처리
def func(**kwargs):
return kwargs
print(func(한국어='안녕', 영어='hi'))
- 위의 코드를 실행하면 {'한국어' : '안녕', '영어' : 'hi'}와 같이 딕셔너리 형태로 출력된다.
Unpacking
- 여러 개의 객체를 포함하고 있는 하나의 객체를 풀어주기 위해 사용!
- 매개변수에 *을 붙이는 게 아닌, 인자 앞에 *을 붙인다.
- 가변 인자
def func(a, b, c):
return a + b + c
numbers = [1, 2, 3]
print(func(*numbers))
- 해체된 결과가 함수의 매개변수 개수와 다를 경우, 에러 발생
- 2차원 배열에서 결과를 출력할 때 유용하다!
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in arr:
print(*row)
- 위와 같은 코드를 실행하면 한 줄마다 행의 모든 값이 출력된다
1 2 3
4 5 6
7 8 9
- 모든 값을 한 줄에 출력하려면 end=' '를 쓰면 된다.
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in arr:
print(*row, end=' ')
1 2 3 4 5 6 7 8 9
[참고]
728x90
'PROGRAMMING > PYTHON' 카테고리의 다른 글
[Python] 비트 연산자 (0) | 2021.08.22 |
---|---|
[Python] 2차원 배열 (0) | 2021.08.22 |
[Python] input() vs sys.stdin.readline() (0) | 2021.08.16 |
[Python] 객체 지향 프로그래밍(OOP) (0) | 2021.07.30 |
[Python] 정규 분포, 확률 분포, 사분위 수 (0) | 2021.05.10 |
댓글