brunch

You can make anything
by writing

C.S.Lewis

by 내가 사는 세상 Apr 21. 2024

기초개념 - 자료형 2

목차

1. 큰 그림


2. 매핑타입(키(key)-값(value)를 가지는 형태)

- PYTHON : 딕셔너리

- JAVASCRIPT : 개체

- JAVA : 개체




1. 큰 그림



2. 매핑타입(mapping type)


 : 키(key)-값(value)를 가지는 것



- PYTHON : 딕셔너리


저장순서 유지(version 3.7 ~, 그럼에도 본질적으론 순서, 위치정보를 중시하지 않아 매핑 타입(mapping type))

때문에 순서 정보를 기반으로 하는 연산(ex. indexing, slicing) 불가

순서는 달라도 저장된 내용물이 같으면 비교연산자(==)에서 True, 하지만 OrderedDict는 False(bcz. 순서까지 고려)

 

person = {

  "name": "John",

  "age": 30,

}


setdefault

person = {}

person.setdefault("name", "John")

person.setdefault("age", 30)

print(person)  # {'name': 'John', 'age': 30}



defaultdict

from collections import defaultdict


default_age = lambda: 30  # 디폴트값을 지정할 함수를 정의

person = defaultdict(default_age)  # defaultdict를 생성하고, 기본값으로 default_age 함수를 사용

person["name"] = "John"

print(person)  # defaultdict(<function <lambda> at 0x7f8b2cb65a70>, {'name': 'John'})



OrderedDict : 순서를 중시하는 딕셔너리

from collections import OrderedDict


# 일반 dict

normal_dict1 = {'a': 1, 'b': 2}

normal_dict2 = {'b': 2, 'a': 1}


# ordereddict

ordered_dict1 = OrderedDict({'a': 1, 'b': 2})

ordered_dict2 = OrderedDict({'b': 2, 'a': 1})


# 비교

print("일반 dict 비교 결과:", normal_dict1 == normal_dict2)  # 순서 무시하여 True 출력

print("ordereddict 비교 결과:", ordered_dict1 == ordered_dict2)  # 순서를 고려하여 False 출력




- JAVASCRIPT : 개체

let person = {

  name: "John",

  age: 30,

};




- JAVA : 개체

// Java 예시

import java.util.HashMap;

public class Main {

    public static void main(String[] args) {

        // HashMap 생성

        HashMap<String, Integer> ages = new HashMap<>();

        // 값 추가

        ages.put("John", 30);

        ages.put("Alice", 25);

        ages.put("Bob", 35);

        // 값 조회

        System.out.println("John의 나이: " + ages.get("John"));

    }

}



참고자료


열혈 파이썬 중급편(윤성우)

매거진의 이전글 기초개념 - 정규표현식
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari