Packing과 Unpacking

givemacdonalds·2023년 10월 11일
0

TIL

목록 보기
1/16

백준 5597번

students=[i for i in range(1,31)]
for _ in range(28):
	s.remove(int(input())
print(*students,sep="\n")

여기서 *students 가 무엇인지 궁금했다.

Packing

우선 나의 궁금증을 해결하기 위해서는 packing 부터 알아야 함

  • packing은 출력하고자하는 객체가 몇개던지, 즉 몇개의 인자를 받던지 상관하지 않고 출력함
def func(*args):
      print(args)
func(1, 2, 3, 4, 5, 6, 'a', 'b')   # (1, 2, 3, 4, 5, 6, 'a', 'b')

이런 식으로 나옴

Unpacking

Packing은 함수의 변수에 *를 붙였다면 unpacking은 그에 반대로 인자에 *를 붙임

def sum(a,b,c)
	return a+b+c
numbers[1,2,3]
sum(numbers) 		# error
sum(*numbers) 		# 6

sum(*nubers)가 어떻게 변하는지 과정을 자세하게 보자면

  1. sum(*nubers)
  2. sum(*[1,2,3])
  3. sum(1,2,3)

이런 식으로 변화함

추가로

함수의 매개변수의 갯수와 인자의 갯수가 다르면 error 발생함

0개의 댓글