목차
1. 큰 그림
2. 매핑타입(키(key)-값(value)를 가지는 형태)
- PYTHON : 딕셔너리
- JAVASCRIPT : 개체
- JAVA : 개체
: 키(key)-값(value)를 가지는 것
저장순서 유지(version 3.7 ~, 그럼에도 본질적으론 순서, 위치정보를 중시하지 않아 매핑 타입(mapping type))
때문에 순서 정보를 기반으로 하는 연산(ex. indexing, slicing) 불가
순서는 달라도 저장된 내용물이 같으면 비교연산자(==)에서 True, 하지만 OrderedDict는 False(bcz. 순서까지 고려)
person = {
"name": "John",
"age": 30,
}
person = {}
person.setdefault("name", "John")
person.setdefault("age", 30)
print(person) # {'name': 'John', 'age': 30}
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'})
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 출력
let person = {
name: "John",
age: 30,
};
// 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"));
}
}
열혈 파이썬 중급편(윤성우)