args (가변인자)
- "*args"를 변수명으로 사용
- 보통 가장 마지막 파라미터에 추가된 형태로 입력
- 기존 파라미터 이후에 입력하는 값들을 tuple 자료형으로 저장함
def args_test(a,b,*args):
return a*b*max(args)
print(args_test(1,2,5,7,5,2,4))
kargs(키워드 가변인자)
- "**kargs"를 변수명으로 사용
- 파라미터의 이름을 따로 지정하지 않고 입력하는 방법
- 딕셔너리 자료형으로 저장됨
- 머신러닝 프레임워크에서 특히 자주 쓰인다
- "args"와 동시 사용 가능
- 보통 기본 파라미터를 먼저 입력, 그 후에 args를, 마지막으로 **kargs를 입력하는 형태
def kwargs_test(**kwargs):
print(kwargs)
kwargs_test(mbti = 'entp', month = 9, day = 20, 한글 = '한글')
- 신기하게도, 문자열처럼 따옴표(",')를 이용하지 않고 변수를 넣어줘도, 딕셔너리 키 값에는 문자열 자료형으로 들어간다
def kwargs_test2(a,b, *args, **kwargs):
print(a + b + sum(args), f"| kwargs : {kwargs}")
kwargs_test2(21,13,-1,-2,-3, mbti = 'entp', month = 9, day = 20)
Asterisk (*)
- unpacking의 용도로 자주 쓰임
- 코딩테스트 볼 때, 출력물에서 많이 쓰였던 경험
ex) 리스트의 원소를 한 칸씩 띄어서 출력해야 하는 경우
1차원 리스트, 튜플등을 unpacking : *
test = ['a','b','c']
print(*test)
zip과 unpacking을 함께 쓰는 방법
- ex) 인덱스별 합을 구하고 싶은데, for문은 돌리기 싫을 때
test = ([1,-1], [2,-2], [3,-3])
sum_of_idx = []
for value in zip(*test):
print(value)
sum_of_idx.append(sum(value))
print(sum_of_idx)