# 중첩 딕셔너리와 리스트

### 코드

{% code title="중첩 딕셔너리 (딕셔너리 안에 딕셔너리를 넣는 경우)" %}

```
{딕셔너리_이름} = {
    키1: 값1,
    키2: {
        하위키1: 값A,
        하위키2: 값B
    }
}

{딕셔너리_이름}["키2"]["하위키1"]
```

{% endcode %}

{% code title="딕셔너리 안에 리스트를 넣는 경우" %}

```
{딕셔너리_이름} = {
    키1: 값1,
    키2: [값A, 값B, 값C]
}

{딕셔너리_이름}["키1"]
{딕셔너리_이름}["키2"][0]
```

{% endcode %}

{% code title="리스트 안에 딕셔너리를 넣는 경우" %}

```
{리스트_이름} = [
    {키1: 값1, 키2: 값2},
    {키1: 값1, 키2: 값2},
    {키1: 값1, 키2: 값2}
]

{리스트_이름}[0]
{리스트_이름}[0]["키1"]
```

{% endcode %}

***

### 설명

**딕셔너리**는 키(key)와 값(value)의 형태로 데이터를 저장하는 자료형이에요.\
**리스트**는 여러 개의 데이터를 순서대로 저장하는 자료형이에요.

이 두 가지를 함께 사용하면\
구조가 있는 복잡한 데이터를 매우 깔끔하게 표현할 수 있어요.

특히 다음과 같은 상황에서 자주 사용돼요.

* 여러 사람의 정보 관리
* 인공지능 분류 결과를 여러 개 저장할 때
* 게임 기록, 설정 값, 사용자 정보처럼 비슷한 형식의 데이터가 많을 때

딕셔너리 안에 딕셔너리를 넣으면 중첩 딕셔너리가 되고,\
딕셔너리 안에 리스트를 넣거나, 리스트 안에 딕셔너리를 넣어\
현실 세계의 정보 구조를 그대로 표현할 수 있어요.

값에 접근할 때는

* 딕셔너리는 `["키"]`
* 리스트는 `[번호]`\
  를 사용하며, 여러 구조가 섞여 있을 경우 차례대로 이어서 접근해요.

***

### 주의사항

* 키 이름은 정확하게 입력해야 해요.
* 딕셔너리에 없는 키를 사용하면 값을 가져올 수 없어요.
* 리스트는 0부터 번호가 시작해요.

***

### 파이썬 대응 코드

```
리스트_이름 = [
    {"키1": 값1, "키2": 값2},
    {"키1": 값1, "키2": 값2},
    {"키1": 값1, "키2": 값2}
]
```

***

### 예시

{% code title="예시 코드" %}

```
학생 = {
    이름: "하랑이",
    학년: 6,
    취미: ["게임", "독서"],
    보호자: {
        이름: "하랑이 부모님"
        연락처: "010-1234-5678"
    },
    수강과목: [
        {과목명: "수학", 요일: "월요일"},
        {과목명: "과학", 요일: "수요일"}
    ]
}

학생["이름"] 보여주기
학생["취미"][0] 보여주기
학생["보호자"]["연락처"] 보여주기
학생["수강과목"][1]["과목명"] 보여주기
```

{% endcode %}

{% code title="예시 코드의 출력" %}

```
하랑이
게임
010-1234-5678
과학
```

{% endcode %}

***

### 검색 키워드

딕셔너리, 자료형, 키와 값, 데이터 저장, 값 종류, 중첩 딕셔너리, 리스트


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://codebook.horang.it/readme/undefined-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
