개발/Python

[파이썬] 함수를 호출할 때 목록을 *args로 변환하는 법?

MinorMan 2022. 10. 12. 07:21
반응형

<질문>

Python에서 목록을 다음으로 변환하는 방법은 무엇입니까?*args?

기능 때문에 알아야 합니다.

scikits.timeseries.lib.reportlib.Report.__init__(*args)

여러 time_series 객체가 다음과 같이 전달되기를 원합니다.*args, 시계열 객체 목록이 있습니다.


<답변1>

당신은 사용할 수 있습니다* iterable 앞에 연산자를 추가하여 함수 호출 내에서 확장합니다. 예를 들어:

timeseries_list = [timeseries1 timeseries2 ...]
r = scikits.timeseries.lib.reportlib.Report(*timeseries_list)

(주의* ~ 전에timeseries_list)

로부터python documentation:

*expression 구문이 함수 호출에 나타나면 expression iterable로 평가해야 합니다. 이 iterable의 요소가 처리됩니다. 마치 추가적인 위치 인수인 것처럼; 만일 거기에 위치 인수 x1, ..., xN 및 표현식은 다음으로 평가됩니다. 시퀀스 y1, ..., yM, 이것은 M+N 위치 호출과 동일합니다. 인수 x1, ..., xN, y1, ..., yM.

이것은 또한 python 자습서의 섹션에서 다룹니다.Unpacking argument lists, 여기서 키워드 인수에 대한 사전을 사용하여 유사한 작업을 수행하는 방법도 보여줍니다.** 운영자.


<답변2>

예, *arg를 사용하여 args를 함수에 전달하면 파이썬이 arg의 값을 풀고 함수에 전달합니다.

그래서:

>>> def printer(*args):
 print args


>>> printer(2,3,4)
(2, 3, 4)
>>> printer(*range(2, 5))
(2, 3, 4)
>>> printer(range(2, 5))
([2, 3, 4],)
>>> 

<답변3>

*args 함수가 일반적으로 동일한 유형의 여러 인수를 취한다는 것을 의미합니다.

체크 아웃this section 자세한 내용은 Python 자습서에서 확인하세요.

반응형