[Python] 문자열을 함수의 매개변수로 쓰고 싶은데 어떻게 해야 하나요??

조회수 934회

collection_name()을 사용해서 컬렉션 이름들이 들어있는 리스트(list1)을 만들었습니다. 그런데, 제가 이 list1에 들어있는 컬렉션 이름들을 함수에 넣어서 사용하고 싶은데, 어떻게 해야하나요?

어떻게 설명 드려야 할지 모르겠네요. 간단히 예시하자면,

def ABC(collection):

    c = collection.find()
    ...
    ...
 #각 컬렉션안에 있는 항목들의 'Value'라는 정수값의 평균을 구해주는 함수.  ex) ABC(가) = '가'컬렉션의 'value'들의 평균


list1 = db.collection_name()
ex) list1 = ['가', '나', '다', ...]
#'value'의 평균을 구하고 싶은 컬렉션들의 이름 리스트


for A in list1:
    ...
    result = ABC(db.A)     #문제의 부분
    print (result)

'문제의 부분'처럼 이렇게 리스트 안에 들어있는 컬렉션 이름들을 함수ABC에 넣어서 각 컬렉션들의 'value'항목의 평균값을 print 해주고 싶습니다. 처음에 저렇게 for구문을 써서 했었는데 안되더라구요.

저렇게 했을때 list안의 컬렉션이름 A가 str type으로 나오고, 함수 ABC에 넣으려면, ABC(db.A)처럼 들어가야하는데,

(함수는 그낭 제가 임의로 컬렉션 하나를 입력했을때 정상작동 했습니다!! 리스트도 출력해보니 이름들 모두 잘 나왔고, 제 생각에는 for구문에서 ABC함수 매개변수를 db.A라고 적은게 문제 인 것 같은데 맞을까요.)

혹시 어떤 방법이 있는지 여쭤볼수 있을까요? 설명이 보충해봤는데, 혹시 부족한 부분 있다면 말씀 부탁드려요!

  • db 는 어떤 타입의 변수인가요? nowp 2021.2.3 07:25
  • 설명이 미흡합니다. daewon님의 말씀처럼 db.A가 어떤 타입인지, 그리고 문제의 부분 가지고 정확히 무엇을 하고 싶은 건지 불분명합니다. A 변수와 조건이 일치하는 경우 함수를 동작시키고 싶은 것인지, abc함수로 A를 보내 find함수를 작동시키고 싶다는것인지 목적이 너무 불분명합니다. 초보자 2021.2.3 10:01
  • @홍: pymongo 를 사용한다면, https://popcorn16.tistory.com/122 를 참고해 보시면 답을 찾을 수 있지 않을까요. nowp 2021.2.3 14:57
  • 앗ㅠㅠㅠ원래 더 구체적으로 답변을 적었는데 잘렸네요ㅠㅠㅠ 본의 아니게 무례한 답변 죄송합니다ㅜㅜ 혹시 내용을 추가해봤는데 괜찮으시다면 다시 한번 봐주실 수 있으실까요?! 알 수 없는 사용자 2021.2.3 16:01
  • 전혀 구체적이지 않습니다. 최소한 def ABC(collection)에서 collection은 어떤 객체인지, collection를 출력할 경우 어떻게 표시되는지정도는 알려줘야 뭘 할 수 있죠. 그리고 find() 이렇게 하면 에러 납니다. 초보자 2021.2.4 11:57
  • @홍 : db.A --> db[A] 이렇게 되는지 확인해 보시길. pymongo 를 사용하고 있다면, pymongo 패키지의 문서랑 사용샘플코드를 좀 검색해서 읽어보세요. nowp 2021.2.4 13:16
  • @daewon : 앗 감사합니다,,! 해결되었어요ㅠㅠ 이렇게 간단히 해결되다니,, 알려주신 것들도 검색해서 보니 도움이 되었습니다. 너무 감사합니다!! 알 수 없는 사용자 2021.2.5 20:36
  • @초보 : 설명이 미흡했네요ㅠㅠ find() 부분도 다시 확인하겠습니다! 감사합니다. 알 수 없는 사용자 2021.2.5 20:37

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

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

(ಠ_ಠ)
(ಠ‿ಠ)