소연의_개발일지

 

# 기본 딕셔너리 작성

하나의 키에는 하나의 값만 넣을 수 있다. 

capitals = {
  "France": "Paris",
  "Germany": "Berlin",
}

# 딕셔너리 내 리스트 넣기

쉼표로 구분해서 쓰면 키 하나당 값은 하나만 가능하므로 오류가 난다 -> 대괄호로 묶어주기

key는 하나의 값이고 : value는 여러개가 됨

travel_log = {
  "France": ["Paris", "Lille", "Dijon"],
  "Germany": ["Berlin", "Hamburg", "Stuttgart"],
}

* 중첩이라는 개념은 딕셔너리에만 있는게 아니며, 리스트 내에 리스트 중첩도 가능함.


# 딕셔너리 내 딕셔너리 넣기

예시) 방문한 나라들을 기록한다고 치고, 방문한 나라와 그 내 도시들을 나열, 몇 번 방문했는지 적는다면 아래와 같이 적을 수 있다.

travel_log = {
    "France": {"cities_visited": ["Paris", "Lille", "Dijon"], "total_visits": 12},
    "Germany": ["Berlin", "Hamburg", "Stuttgart"],
}

유데미 강의는 영어로만 되어있어서.. 내가 방문한 카페와 메뉴, 방문한 횟수로 바꿔서 정리해봤다

cafe = {
    "스타벅스": {"먹어본_음료": ["아이스아메리카노", "유자민트티", "자몽허니블랙티", "돌체라떼"], "방문_횟수": 30},
    "이디야": {"먹어본_음료": ["토피넛_라떼"], "방문_횟수": 12}
}

음 훨씬 이해가 쉽군 ㅎㅎㅎ

 


# 리스트 내 딕셔너리 중첩하기

구성은 아래와 같다. ▼

[{
    key: [List],
    key2: {Dict},
},
{
    key: Value,
    key2: Value,
}]

리스트는 순서대로 정렬되며 리스트 안의 인덱스를 이용해 값에 접근할 수 있다.

위에 방문한 나라의 예시에 country 값을 추가해 정리하면 

travel_log = [

    {
    "country": "France",
    "cities_visited": ["Paris", "Lille", "Dijon"], 
    "total_visits": 12
    }

    {
    "country": "Germany",
    "cities_visited" : ["Berlin", "Hamburg", "Stuttgart"], 
    "total_visits": 5
    }
]

이렇게 정리할 수 있다.

딕셔너리 안의 값들은 원하는 어떤 자료형이든-숫자형, 문자형, 등-들어갈 수 있다.

키: 값 <- 키와 값 사이에는 항상 : 이 들어가야 한다.


Q. 리스트 관련 예제

travel_log = [
    {
        "country": "France",
        "visits": 12,
        "cities": ["Paris", "Lille", "Dijon"]
    },
    {
        "country": "Germany",
        "visits": 5,
        "cities": ["Berlin", "Hamburg", "Stuttgart"]
    },

위의 값에 

"Russia", 2, ["Moscow", "Saint Petersburg"]

을 추가하는 함수를 만들어라.

 

답 ↓

travel_log = [
    {
        "country": "France",
        "visits": 12,
        "cities": ["Paris", "Lille", "Dijon"]
    },
    {
        "country": "Germany",
        "visits": 5,
        "cities": ["Berlin", "Hamburg", "Stuttgart"]
    },
]


# add_new_country 라는 함수 만들기(뒤에는 순서대로 방문한 나라, 방문한 횟수, 방문한 도시)
# new_country 라는 빈 딕셔너리 만들기
# 빈 딕셔너리인 new_country에 [키] = 값 추가 -> new_country["country"] = country_visited
# 마지막으로 원래 추가하려고 했던 travel_log에 append로 딕셔너리 추가해주기

def add_new_country(country_visited, times_visits, cities_visitied):
    new_country = {}
    new_country["country"] = country_visited
    new_country["visits"] = times_visits
    new_country["cities"] = cities_visitied
    travel_log.append(new_country)

# 함수적용
add_new_country("Russia", 2, ["Moscow", "Saint Petersburg"])
# travel_log 출력
print((travel_log))
profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!