Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 중첩 사전:방법 가이드

Python 중첩 사전은 다른 사전 내의 사전입니다. 이를 통해 기존 사전 내의 키-값 매핑 구조를 사용하여 데이터를 저장할 수 있습니다.

Python에서 사전으로 작업할 때 사전에 다른 사전이 포함된 상황이 발생할 수 있습니다.

이러한 데이터 구조를 종종 중첩 사전이라고 합니다. Python 코드의 광범위한 잠재적 사용 사례가 있습니다.

이 자습서에서는 Python 중첩 사전의 기본 사항에 대해 설명합니다. 중첩된 사전을 만들고 수정하는 방법을 배울 수 있도록 몇 가지 예를 살펴보겠습니다.

Python 사전 새로고침

사전은 Python의 매핑 데이터 유형입니다. Python 사전 바인딩 또는 지도 —값에 대한 키를 제공하고 데이터를 저장하는 효과적인 방법을 제공합니다.

키가 값에 매핑되면 키를 참조하여 해당 값에 저장된 데이터를 검색할 수 있습니다. 따라서 어떤 의미에서 키는 레이블과 같은 역할을 합니다. 다음은 지역 아이스크림 가게인 The Frozen Spoon에서 판매되는 아이스크림 맛의 가격을 저장하는 사전의 예입니다.

ice_cream_flavors ={ "바닐라":0.50, "초콜릿":0.50, "쿠키 앤 크림":0.75, "딸기":0.65, "버터 피칸":0.90}

이 사전의 키는 아이스크림의 이름(즉, "Vanilla")이고 값은 각 아이스크림의 스쿱당 가격입니다.

Python 중첩 사전

Python 중첩 사전은 사전 내부의 사전입니다. 다른 사전 내에서 사전 데이터를 나타내는 데 사용됩니다. 사전에 원하는 만큼 사전을 중첩할 수 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

중첩된 사전은 구성 요소 사전의 범위를 하나의 큰 사전에 저장하려는 경우에 유용합니다.

중첩된 사전이 작동하는 방식을 설명하기 위해 예제를 살펴보겠습니다. Frozen Spoon에서 판매되는 아이스크림의 각 맛에 대한 사전을 저장하는 사전을 만들고 싶다고 가정합니다. 큰 사전의 각 사전은 다음을 나열해야 합니다.

  • 아이스크림 이름
  • 가격
  • 재고 파인트 수

이 데이터를 저장하는 중첩 사전은 다음과 같습니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "flavor":"쿠키와 크림", "price":0.75, "파인트":14 }}

코드에서 ice_cream_flavors라는 하나의 큰 사전을 선언했습니다. . 이 사전에는 아이스크림의 특정 맛에 대한 정보가 저장되어 있는 3개의 사전이 있습니다.

중첩된 사전을 사용하지 않았다면 이러한 각 사전을 별도의 변수에 저장해야 했을 것입니다. 각 사전에 아이스크림 맛에 대한 정보가 저장되어 있기 때문에 이는 직관적이지 않습니다.

중첩 사전의 항목 액세스

중첩된 사전의 항목에 액세스하려면 인덱싱 구문을 사용할 수 있습니다.

사전에서 인덱스 값이 0인 아이스크림 가격을 검색한다고 가정합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "flavor":"쿠키와 크림", "price":0.75, "pints":14 }}print(ice_cream_flavors[0]["price"])print(ice_cream_flavors[0][" 맛"])

코드 반환:

0.50바닐라

이 코드에서는 먼저 검색하려는 큰 사전에 값이 있는 항목 키를 지정합니다. 이 경우 인덱스 값이 0인 레코드에 액세스하려고 했습니다.

그런 다음 검색하려는 내부 사전의 항목 이름을 지정합니다. 이 경우 아이스크림의 가격과 맛을 검색하고 싶었습니다. 그래서 우리는 가격을 지정했습니다. 그리고 print() 진술.

중첩 사전 Python:요소 추가

중첩된 사전에 요소를 추가하려면 항목을 수정하는 데 사용한 것과 동일한 구문을 사용할 수 있습니다. 중첩된 사전에 항목을 추가하는 데 사용해야 하는 방법은 없습니다. 할당 연산자를 사용해야 합니다.

항목을 추가하는 구문은 다음과 같습니다.

사전_이름[new_key_name] =new_value

판매용 바닐라 아이스크림에 대한 정보를 저장하는 사전이 있다고 가정합니다. 아이스크림에 할인이 있는지 추적하고 싶습니다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "맛":"쿠키와 크림", "가격":0.75, "파인트":14 }}ice_cream_flavors[0]["discount"] =Trueprint(ice_cream_flavors[0])

코드를 실행하고 어떤 일이 일어나는지 봅시다:

{'맛':'바닐라', '가격':0.5, '파인트':20, '할인':참}

사전은 Python 변수 "ice_cream_flavors"에 저장됩니다.

할인이라는 키를 추가했습니다. 사전에. 이 키의 인덱스 위치는 0입니다. 이 키의 값을 True로 설정합니다. 그런 다음 ice_cream_flavors에서 인덱스 값이 0인 사전을 인쇄했습니다. 중첩 사전. 이것은 우리의 할인을 보여줍니다 키가 추가되었습니다.

이 구문을 사용하여 기존 사전의 요소를 업데이트할 수 있습니다. 초콜릿 아이스크림의 가격을 국자당 $0.45로 변경하려고 한다고 가정합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "맛":"쿠키와 크림", "가격":0.75, "파인트":14 }}ice_cream_flavors[1]["price"] =0.45print(ice_cream_flavors[1]) 

코드 반환:

{'맛':'초콜릿', '가격':0.45, '파인트':31}

가격 값을 변경했습니다. 초콜릿 아이스크림의 열쇠는 $0.45입니다.

그렇게 하기 위해 우리는 price 변경하려는 값은 1입니다. 이 값은 사전에 있는 초콜릿 아이스크림에 대한 정보를 포함합니다. 그런 다음 price에 새 값을 할당했습니다. 키.

중첩 사전 Python:요소 삭제

중첩된 사전에 저장된 항목을 삭제하려면 del을 사용할 수 있습니다. 성명. del 문을 사용하면 개체를 삭제할 수 있습니다. del은 한 줄에 Python break 문처럼 작성되고 그 뒤에 삭제하려는 사전의 항목이 옵니다.

우리 가게에서 일시적으로 쿠키와 크림 아이스크림을 더 이상 제공하지 않는다고 가정합니다. 쿠키앤크림 아이스크림을 보관하던 냉동고가 작동을 멈추고 상품이 녹았습니다.

다음 코드를 사용하여 중첩된 사전에서 이 아이스크림을 제거할 수 있습니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "flavor":"쿠키와 크림", "price":0.75, "pints":14 }}del ice_cream_flavors[2]print(ice_cream_flavors)

코드 반환:

{0:{'맛':'바닐라', '가격':0.5, '파인트':20}, 1:{'맛':'초콜릿', '가격':0.5, '파인트':31 }}

우리 코드에서는 del을 사용했습니다. 키가 2인 중첩 사전의 값을 삭제하는 명령문입니다. 보시다시피 Cookies and Cream 항목이 제거되었습니다. 중첩된 사전에서 가져온 것입니다.

Python 중첩 사전을 통해 반복

이제 중첩된 사전에 있는 각 사전의 내용을 콘솔에 출력하려고 한다고 가정합니다. 이 작업을 어떻게 수행할 수 있습니까?

좋은 질문입니다. 중첩된 사전의 내용을 인쇄하려면 Python for 루프를 사용하여 반복할 수 있습니다. 또한 Python 사전 항목() 메서드를 사용하여 사전에 있는 키와 값 목록을 검색할 것입니다.

ice_cream_flavors ={ 0:{ "맛":"바닐라", "가격":0.50, "파인트":20 }, 1:{ "맛":"초콜릿", "가격":0.50, "파인트" :31 },2:{ "flavor":"Cookies and Cream", "price":0.75, "pints":14 }}키의 경우 ice_cream_flavors.items()의 값:print("아이스크림:", 키 ) k, v in value.items():print(k + ":", value[k])

코드 반환:

아이스크림:0맛:바닐라 가격:0.5파인트:20아이스크림:1파인트:초콜릿 가격:0.5파인트:31아이스크림:2맛:쿠키 앤 크림 가격:0.75파인트:14

코드를 분해해 보겠습니다. 먼저 아이스크림 맛의 중첩 사전을 정의했습니다.

그런 다음 ice_cream_flavors의 각 키와 값을 통과하는 for 루프를 정의했습니다. 사전. 이 루프는 .items()를 사용합니다. ice_cream_flavors의 모든 키와 값 목록 생성 루프가 반복할 수 있는 사전입니다.

그런 다음 아이스크림:을 인쇄합니다. 뒤에 특정 아이스크림과 관련된 키가 옵니다.

다음으로 다른 for 루프를 사용하여 각 의 모든 항목을 반복합니다. 중첩된 사전에 있습니다. 이것은 중첩된 사전의 각 내부 항목(예:바닐라 및 초콜릿)을 나타냅니다. 이 루프는 내부 ​​사전에 있는 각 키의 이름을 출력하고, 콜론, 그 키와 관련된 값을 차례로 출력합니다.

결론

중첩 사전을 사용하면 Python의 사전 내부에 사전을 저장할 수 있습니다.

이 자습서에서는 예제를 참조하여 다음을 수행하는 방법에 대해 설명했습니다.

  • 중첩 사전 만들기
  • 중첩 사전에 요소 추가 및 업데이트
  • 중첩 사전에서 요소 제거
  • 중첩된 사전을 통해 반복

Python으로 코딩하는 방법에 대해 자세히 알아보려면 Python으로 코딩하는 방법 가이드를 읽어보세요.