가변인수 리스트

CODEDRAGON Development/Python

반응형


 

 

 

가변인수 리스트

·       함수의 입력파라미터의 갯수를 미리 알 수 없을 인수의 개수가 정해지지 않은 가변 인수를 전달합니다.

·       함수 정의시에 일반적인 인수 선언 앞에 * 사용하여 *입력변수 형식의 인수로 가변 인수를 선언할 수 있습니다.

·       입력변수에는 함수 호출시 넣어주는 인수 값들 중 일반 인수에 할당되는 값을 제외한 나머지 값들을 지닌 튜플 객체가 할당됩니다.(인수는 튜플 형식으로 전달됩니다.)

 

 

 

 

 

CASE 1

같은 타입의 데이터를 가변적으로 함수의 인자로 입력받을 있습니다.

def 함수이름(*입력변수):

    <수행할 문장>

    ...

 

 

입력받은 리스트 객체에서 합집합을 구하는 함수 정의시 입력받는 인수부분을 가변인수로 정의하여 여러 인수를 튜플형식으로 입력받을 있습니다.

>>> def union(*items):

results=[]

for item in items:

for x in item:

if not x in results:

results.append(x)

return results

 

>>> union("red", "green", "yellow", "black")

['r', 'e', 'd', 'g', 'n', 'y', 'l', 'o', 'w', 'b', 'a', 'c', 'k']

 

 

 

 

 

 

CASE 2

dict변수에 값을 저장한 다음 dict변수를 통해 함수를 호출할 있습니다.

def 함수이름(*입력변수):

    <수행할 문장>

    ...

dict변수생성

함수이름(*dict변수명)

 

>>> def union(*items):

results=[]

for item in items:

for x in item:

if not x in results:

results.append(x)

return results

 

>>> colors = "red", "green", "yellow", "black"

>>> union(*colors)

['r', 'e', 'd', 'g', 'n', 'y', 'l', 'o', 'w', 'b', 'a', 'c', 'k']

 

 

 

 

 

CASE 3

같은 타입의 데이터를 가변적으로 함수의 인자로 입력받을 있는데 키워드인수 형태로 입력받습니다.

def 함수이름(**입력변수):

    <수행할 문장>

    ...

 

>>> def union(**items):

    results=[]

    for k, v in items.items():

        for x in v:

            if not x in results:

                results.append(x)

    return results

 

>>> union(a='red', b='green', c='yellow', d='black')

['r', 'e', 'd', 'g', 'n', 'y', 'l', 'o', 'w', 'b', 'a', 'c', 'k']

 

 


반응형

'Development > Python' 카테고리의 다른 글

디렉토리(트리) 탐색하기  (0) 2020.01.22
sys 모듈의 표준 입출력 관련 객체  (0) 2020.01.22
global 명령어 이용하기  (0) 2020.01.22
LGB 규칙  (0) 2020.01.22
이름공간(NameSpace)  (0) 2020.01.22