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)
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)