십대를 위한 코딩/십대를 위한 파이썬

딕셔너리의 .items() 메서드는 어떻게 생겼을까?

forSilver 2025. 2. 17. 22:06
반응형

🔹 딕셔너리의 .items() 메서드는 어떻게 생겼을까?

.items()는 Python의 딕셔너리(dict) 메서드로,
딕셔너리의 모든 키-값 쌍을 튜플 형태로 반환하는 메서드입니다.

dict.items()
  • dict.items()는 (key, value) 쌍을 포함한 뷰 객체(dict_items)를 반환합니다.
  • 반환 타입: dict_items([ (key1, value1), (key2, value2), ... ])
  • 보통 반복문(for)에서 활용하여 딕셔너리 데이터를 처리할 때 많이 사용합니다.

🔹 1. .items()의 실제 동작 방식

예제 1: 기본 사용법

data = {"name": "Alice", "age": 25, "city": "London"}

items_view = data.items()  # .items() 호출

print(items_view)  # dict_items([('name', 'Alice'), ('age', 25), ('city', 'London')])
print(type(items_view))  # <class 'dict_items'>

출력 결과:

dict_items([('name', 'Alice'), ('age', 25), ('city', 'London')])
<class 'dict_items'>

🔹 dict_items 객체가 반환됨 (리스트가 아님)
🔹 dict_items 객체는 반복(iteration)이 가능뷰(View) 객체


🔹 2. .items()를 for 반복문에서 사용

예제 2: 딕셔너리의 키-값 쌍 출력

data = {"name": "Alice", "age": 25, "city": "London"}

for key, value in data.items():
    print(f"{key} → {value}")

출력 결과:

name → Alice
age → 25
city → London

🔹 .items()를 사용하면 딕셔너리의 (key, value)를 튜플로 반환
🔹 for key, value in data.items(): → 키와 값을 한 번에 가져올 수 있음


🔹 3. .items() vs .keys() vs .values()

메서드 반환 값 예제 (data = {"name": "Alice", "age": 25})

.items() (key, value) 튜플 목록 dict_items([('name', 'Alice'), ('age', 25)])
.keys() key 목록 dict_keys(['name', 'age'])
.values() value 목록 dict_values(['Alice', 25])

예제 3: keys() & values() 비교

data = {"name": "Alice", "age": 25}

print(data.keys())   # dict_keys(['name', 'age'])
print(data.values()) # dict_values(['Alice', 25])
print(data.items())  # dict_items([('name', 'Alice'), ('age', 25)])

🔹 keys(): 딕셔너리의 키만 반환
🔹 values(): 딕셔너리의 값만 반환
🔹 items(): 키-값 튜플 쌍을 반환


🔹 4. .items()를 리스트로 변환

.items()가 반환하는 dict_items는 리스트와 유사하지만 리스트가 아님.
따라서 list()를 사용하면 리스트로 변환할 수 있습니다.

예제 4: .items()를 리스트로 변환

data = {"name": "Alice", "age": 25}

items_list = list(data.items())  # 리스트 변환

print(items_list)   # [('name', 'Alice'), ('age', 25)]
print(items_list[0]) # ('name', 'Alice') → 첫 번째 (key, value) 튜플

🔹 .items()는 기본적으로 dict_items 객체를 반환
🔹 리스트로 변환하면 [(key1, value1), (key2, value2)] 형태가 됨
🔹 인덱싱(items_list[0])을 활용해 튜플 접근 가능


🔹 5. .items()를 활용한 딕셔너리 필터링

.items()를 활용하여 특정 조건을 만족하는 데이터만 필터링할 수도 있습니다.

예제 5: 특정 조건을 만족하는 데이터 필터링

data = {"Alice": 85, "Bob": 92, "Charlie": 78, "David": 90}

# 점수가 90점 이상인 학생만 필터링
high_scores = {k: v for k, v in data.items() if v >= 90}

print(high_scores)  # {'Bob': 92, 'David': 90}

🔹 for k, v in data.items()를 사용하여 키-값을 조회
🔹 조건 if v >= 90를 만족하는 항목만 새로운 딕셔너리로 저장


🔹 6. .items()를 활용한 딕셔너리 정렬

.items()와 sorted()를 조합하면 딕셔너리를 정렬할 수 있습니다.

예제 6: 값(value) 기준으로 정렬

data = {"Alice": 85, "Bob": 92, "Charlie": 78, "David": 90}

# 값 기준으로 정렬 (오름차순)
sorted_items = sorted(data.items(), key=lambda item: item[1])

print(sorted_items)  # [('Charlie', 78), ('Alice', 85), ('David', 90), ('Bob', 92)]

🔹 sorted(data.items(), key=lambda item: item[1])
🔹 lambda item: item[1] → 값(value) 기준 정렬
🔹 정렬된 결과는 리스트(list) 형태로 반환됨


🔹 결론

✅ .items()는 딕셔너리의 (키, 값) 쌍을 dict_items 형태로 반환
✅ for k, v in data.items(): → 반복문에서 키와 값을 동시에 가져올 수 있음
✅ list(data.items())를 사용하면 튜플 리스트로 변환 가능
✅ .items()를 활용하면 필터링, 정렬, 변환 등의 다양한 응용 가능

 

💡 딕셔너리를 다룰 때 .items()를 잘 활용하면 데이터 처리 속도가 훨씬 좋아집니다! 🚀