[Python] asterisk(*)의 unpacking기능

Yoongja·2022년 4월 25일

알고리즘을 풀다 신기한 문법을 보았다.
파이썬에서 *은 컨테이너 타입으로 만들어진 데이터를 unpacking 할 때 사용된다고 한다.
특정 함수가 가변인자를 전달받고 함수를 호출할때 list tuple을 파라미터로 전달될때 사용된다

예시로 이해하는게 편하다

input_data = [1, 2, 3, 4]

def print_all(*input_nums):
    print(input_nums)

print_all(*input_data) # 입력이 1, 2, 3, 4로 변경되어 들어감

공백을 자동으로 넣어서 출력한다

arr = [1,2,3,4,5]
print(*arr) //1 2 3 4 5

for i in arr:
	print(arr,end = ' ') //1 2 3 4 5

코드가 한줄로 줄어드는 것을 확인 할 수 있다

arr = [1,2,3,4,5]

for i in range(0,5,2):
    print(*arr)

결과값
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

for i in range(0,5):
    print(*arr[i:i+2])

결과값
1 2
2 3
3 4
4 5
5

for i in range(0,5,2):
    print(*arr[i:i+2])

결과값
1 2
3 4
5

공백을 넣어서 출력후, 20의 배수만큼 줄바꿈

for i in range(0, n, 20):
    print(*arr[i:i+20])

마지막꺼 ㅎ 이해하기 어렵다 예시별로 뜯어봤는데도 다시봤을때 이해못한다 난 컴퓨터 아니니 걍 코드가 조금더 길어지더라도 직관적으로 쓰자 ㅎ

profile
Belief in the possibility

0개의 댓글