python 인자 여러개일때 처리하는방법.
조회수 478회
list가 이런식으로 저장되어있습니다. all_list=[['frodo', 'fradi'], ['abc123']]
product를 이용하여 계산을 하고싶다면 product(all_list[0],all_list[1])이라고 넘겨주면 됩니다.
하지만, all_list가 가변적이라면 product(all_list[0],all_list[1],...,all_list[n])이런식으로 인자를 넘기고싶습니다.
어떻게해야할까요?
2 답변
-
def doSomething(*args): for i in range(len(args)): print(args[i]) doSomething(1) doSomething(1,2) doSomething(1,2,3) doSomething(1,2,3,4) doSomething(1,2,3,4,5) list_of_lists = [ [1,2,3], [4,5,], [6] ]
제가. 몇번이고 봤는데. 코드상으로 product(all_list[0], all_list[1], ... , all_list[n]) 이런식으로 사용하시겠다는 것이죠? 그런데 그런식으로 코드를 작성하시면 안됩니다. 그렇게 작성 못합니다. 작성 할 수야 있겠는데, 그렇게 작성할려면 정말로 억지로 해야합니다. 그리고 안되는건 다 이유가 있습니다. Anti Pattern 입니다.
그런식으로 작성하지마시고. 그냥
다른분의 답변처럼 product(all_list) 으로 작동하게 하세요.
-
all_list 자체를 함수에 넘긴 후에, 함수 내부에서 all_list 길이를 보고 그에 맞추어 처리하세요.
아래 코드 참고하세요.
- 코드
list1=[['frodo', 'fradi'], ['abc123']] list2=[['aaa'],['bbb'],['ccc']] list3=[] def product(lists): if len(lists)==2: print('인수가 2개일 때 할 일') elif len(lists)>2: print('인수가 3개 이상일 때 할 일') product(list1) product(list2) product(list3) product(list1)
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력