땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • D
  • E
  • I
  • ㅗ
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

Algorithm/Algorithm Problem

Python Asterisk(*) 사용 용도

2022. 1. 3. 20:47

곱셉 용도

  • 1 * 2 = 2
  • 2 ** 2 = 4

리스트 확장

test = [1] * 5
test_t = (1,) * 5

print('list {}'.format(test))
print('tuple {}'.format(test_t))

>>list [1,1,1,1,1]
>>tuple (1,1,1,1,1)

가변인자

가변인자 : 이름 그대로 길이가 변할 수 있는 argument를 말한다.

임의의 함수에 인자로 몇개의 데이터가 들어올지 모르게 되는 경우 사용하면 편리

이때 여러 api나 잘 짜여진 코드를 구경하다보면 함수에 *args나 **kwargs라고 되있는 표현들

이게 바로 가변인자를 사용하겠다는 의미이다. 한개와 두개의 차이는 positional과 keyward 인자의 차이

def function(a, b = None):
...

a는 Positional argument, b는 Keyword argument

a는 값이 없는 경우 error가 뜨게 되며, b는 default값으로 None값을 주게 된다.

 

def save_ranking(*args, **kwargs):
    print(args)
    print(kwargs)
save_ranking('ming', 'alice', 'tom', fourth='wilson', fifth='roy')

>>('ming', 'alice', 'tom')
>>{'fourth': 'wilson', 'fifth': 'roy'}

*args는 임의의 갯수의 positional arguments를 받음을 의미하며, 

**kwargs는 임의의 갯수의 keyword arguments를 받음을 의미한다.

이 때 *args, **kwargs 형태로 가변인자를 받는걸 packing이라고 한다.

 

위의 예시에서 볼 수 있듯이, 임의의 갯수와 임의의 키값을 갖는 인자들을 전달하고 있다.

positional 형태로 전달되는 인자들은 args라는 tuple에 저장되며,

keyword 형태로 전달되는 인자들은 kwargs라는 dict에 저장된다.

Unpacking

알고리즘을 짜다보면 결과부분을 출력할 때. for문을 이용하여 list를 출력하는 경우 한번에 해결

# list unpacking
test = [1, 2, 3, 4]
print(*test) # 1 2 3 4

# tuple unpacking
test = (5, 6, 7, 8)
print(*test) # 5 6 7 8

 

 

 

 

출처 : https://hwiyong.tistory.com/193

https://mingrammer.com/understanding-the-asterisk-of-python/

'Algorithm > Algorithm Problem' 카테고리의 다른 글

백준 1251 단어 나누기  (0) 2022.02.17
백준 1991 트리 순회  (0) 2022.02.17
백준 15649,15650 N과 M(Backtracking)  (0) 2021.11.21
백준 1931 회의실 배정  (0) 2021.11.16
백준 6064 카잉 달력  (0) 2021.11.04
    'Algorithm/Algorithm Problem' 카테고리의 다른 글
    • 백준 1251 단어 나누기
    • 백준 1991 트리 순회
    • 백준 15649,15650 N과 M(Backtracking)
    • 백준 1931 회의실 배정
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바