ones_list = [1] * 100
ones_tuple = (1) * 100
가변인자란 이름 그대로 길이가 변할 수 있는 argument를 말한다.
여러 api나 잘 짜여진 코드를 구경하다 보면 함수에 *arg나 **kwargs 라고 되어있는 표현을 많이 볼 수 있다.
나는 자바의 함수를 정의할때 자주 봤던 것이여서 익숙하기도 하였고
(파이썬만 했는데 다시 자바 공부를 하고 싶다는 의욕이 솓는다...)
이게 바로 가변인자를 사용하겠다는 의미이다.
def args_function(*args):
print(args)
def kwargs_function(**kwargs):
print(kwargs)
args_function('a','b')
> ('a','b')
kwargs_function(a = 100, b = 200)
>{'a': 100, 'b':200}
내가 이 글을 쓰게 된 이유이다.
list를 순회하는 출력문을 짜는 코드가 있었는데
나는 무식하게 반복문을 이용하여서 코드를 짯는데 훨씬 편한 방법을 이용한 좋은 코드가 있어서 보았더니 이 방법을 사용하여서 *에 대해서 공부할 수 있었다.
예시를 보면 이해가 빠르다.
test = [1,2,3,4]
print(*test)
> 1 2 3 4
내가 사용한 코드는
s = input()
dp = [0 for _ in range(26)]
for i in s:
dp[ord(i)-97] += 1
print(*dp)
으로 백준을 공부하다가 사용하게 되었다
문제가 쉬운 문제로 체크되어 있어서 간단하게 풀었는데
생각치도 못한 더 좋은 코드를 통해 한가지를 배울 수 있어서 기분이 굉장히 좋다
https://mingrammer.com/understanding-the-asterisk-of-python/
https://hwiyong.tistory.com/193
백준 10808