딕셔너리 리스트에서 필요한 것만 골라서 리스트에 저장하고 싶어요 ㅠ ㅠ

조회수 4203회

{ "code": "0000031852", "title": "Girls Ballet Tutu Zebra Hot Pink"}

이런식으로 딕셔너리로 구성된 리스트에서요, title에 "Pink" 문자열이 포함된 것만 찾아서, code 값을 리스트에 저장하려면 어떻게 해야할까요? ㅠ ㅠ

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

2 답변

  • 문제를 맞게 이해했는지 잘 모르겠는데요

    list1 = [
    {'code':'1', 'title':'black'},
    {'code':'2', 'title':'pink'},
    {'code':'3', 'title':'white'}
    ]
    
    result = []
    for x in list1 :
        if x['title'].find('pink')!=-1 :
            result.append(x['code'])
    print(result)
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
  • asq 모듈도 한번 사용해보세요. https://github.com/sixty-north/asq

    pandas도 좋은 모듈이지만 가볍게 사용하기에는 asq 도 참 편합니다.

    list1 = [
    {'code':'1', 'title':'black'},
    {'code':'2', 'title':'pink'},
    {'code':'3', 'title':'white'},
    {'code':'4', 'title':'pink'}
    ]
    
    from asq.initiators import query
    r = query(list1).where(lambda item:item['title'] == 'pink').select(lambda item:item['code']).to_list()
    print(r)
    
    ['2', '4']
    
    

    코드는 한줄인데 간단합니다. 질문자가 원하는 그대로죠.

    데이터들(query(list1))에서 title 이 pink 인 항목(.where(lambda item:item['title'] == 'pink'))중에 code 값(.select(lambda item:item['code']))만 추출

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

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

(ಠ_ಠ)
(ಠ‿ಠ)