[Python] 파이썬 아스타리스크(*)

권경환·2023년 11월 12일
0

python

목록 보기
5/14
post-thumbnail

파이썬으로 코딩을 하다보면 아스타리스크(*)를 이용하는 경우가 종종 보이는데 이것은 어떤 상황에서 사용하는건지 궁금해서 알아보았습니다.

찾아보니 여러가지 상황에서 사용하는 것으로 보이는데 크게 4가지로 나뉩니다.

사용방법

1. 곱셈, 거듭제곱 (산술연산자)

제가 아스타리스크를 봤을때 떠오른건 곱셈과 거듭제곱산술연산자인데요.
기본적인 산술계산을 할 때 *를 사용합니다.

#예시
print(2 * 4) # 결과값 8
print(2 ** 4) # 결과값 16

2. 리스트 확장

리스트나 튜플 타입의 자료형을 *를 사용하여 확장 시킬 수 있으며 DFS,BFS 알고리즘에 해당 노드를 방문했는지 안했는지 확인하기 위한 초기변수를 선언할때도 사용됩니다.
간단하게 한 줄로 선언할 수 있어서 좋아요

#예시
test = [0] * 5
print(test) # 결과값 0 0 0 0 0

3.. unpacking(압축해제)

코딩테스트를 하다보면 리스트나 튜플 같은 컨테이너(Container) 타입의 객체에서 값들을 꺼내서 출력해야하는 상황이 발생하는데 이때 *를 사용하여 unpacking 할 수 있다.

Container 객체란?
데이터 자료형에 상관없이 데이터 저장이 가능한 자료구조형을 컨테이너 객체라하며, 문자열(str), 튜플(tuple), 리스트(list), 딕셔너리(dict), 집합(set) 자료형들이 컨테이너 객체에 속합니다.
즉, 정수, 실수, 복소수 타입은 Container 객체가 아님!

#예시
# unpacking 하지 않았을때
# 0부터 4까지 출력하는 코드
test = [i for i in range(5)]
print(test) # 결과값 [0, 1, 2, 3, 4]

# unpacking 했을때
# 0부터 4까지 출력하는 코드
test = [i for i in range(5)]
print(*test) # 결과값 0 1 2 3 4

4. 가변인자

파이썬에서 함수를 만들었는데 들어오는 인자의 개수를 모르거나 지정된 인자를 처리할때 주로 사용되는데 *args, **kwargs를 사용하여 코드를 작성합니다.

*args여러 개의 인자를 함수로 받고자 할 때 사용되는데 *를 사용하며 이때 결과값은 튜플형태로 반환되는것을 확인할 수 있습니다.

def test(*args):
 print(args)
 
test(100,200,300)
# (100, 200, 300)

**kwargs는 이름이 지정된 인자를 처리하고자 할 때 사용되는데 **를 사용하며 이때 결과값은 딕셔너리 형태로 반환되는 것을 확인할 수 있습니다.

def test(**kwargs):
  print(kwargs)
  print(kwargs["number1"])
  print(kwargs["number2"])
  print(kwargs["number3"])

test(number1=100, number2=200, number3=300)
"""
결과값
{'number1': 100, 'number2': 200, 'number3': 300}
100
200
300
"""

결론

파이썬에 아스타리스크가 생각보다 다양한 곳에서 사용되는것을 확인할 수 있었고 코딩테스트를 하다보니 이런 문법들을 알게되는 것이 너무 좋은 경험이라고 생각된다!

profile
성장을 좋아하는 주니어 개발자의 블로그

0개의 댓글