English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python 기본 튜토리얼

Python 흐름 제어

Python 함수

Python 데이터 타입

Python 파일 작업

Python 객체와 클래스

Python 날짜와 시간

Python 고급 지식

Python 참조 매뉴얼

Python 딕셔너리(Dictionary)

이 기사에서는 Python dictionary에 대해 모든 것을 배울 것입니다; 항목을 생성하고, 접근하고, 추가하고, 제거하는 방법, 그리고 다양한 내장 메서드 등입니다.

Python에서 딕셔너리는 무엇인가요?

Python 딕셔너리는 순서 없는 항목 집합입니다. 다른 복합 데이터 유형은 값만 요소로 가지지만, 딕셔너리는 키: 값 쌍(key:value)을 가집니다.

딕셔너리는 키가 알려져 있을 때 값을 검색하는 데 최적화되었습니다.

딕셔너리를 어떻게 생성하나요?

딕셔너리를 생성하는 것은 프로젝트를 쉼표로 구분된 대括号{}에 넣는 것처럼 간단합니다.

하나의 항목은 키와 해당 값을 가진 하나의 쌍으로 표현되며, 키: 값입니다.

키의 값은 어떤 데이터 유형이든 가능하지만, 키는 불변 유형(불변 요소를 가진)여야 합니다.문자열숫자또는특정)이어야 하며, 유일해야 합니다.

# empty dictionary
my_dict = {}
# integer key dictionary
my_dict = {1: 'apple', 2: 'ball'}
# mixed key dictionary
my_dict = {'name': 'John', 1: [2, 4, 3}]
# dict()를 사용
my_dict = dict({1:'apple', 2:'ball'})
# 각 항목을 튜플로서 시퀀스로
my_dict = dict([(1,'apple'), (2,'ball')])

위에서 볼 수 있듯이, 내장 함수 dict()를 사용하여 사전을 생성할 수도 있습니다.

사전에서 항목을 어떻게 접근할 수 있습니까?

인덱싱은 다른 컨테이너 타입과 함께 사용하여 값을 접근하는 데 사용되지만, 사전은 키를 사용합니다. 키는 중괄호 내에서 사용하거나 get() 메서드와 함께 사용할 수 있습니다.

get()를 사용하는 차이점은 키를 찾지 못하면 None을 반환하며, KeyError 오류가 발생하지 않는다는 것입니다.

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

Jack
26

사전에서 항목을 변경하거나 추가하는 방법은 어떻습니까?

사전은 변경 가능합니다. 새 항목을 추가하거나 기존 항목의 값을 변경하려면 할당 연산자를 사용할 수 있습니다.

키가 이미 존재하면 값이 갱신되고, 아니면 새 키:값 쌍이 사전에 추가됩니다.

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}

사전에서 항목을 제거하거나 어떻게 항목을 제거할 수 있습니까?

우리는 pop() 메서드를 사용하여 사전에서 특정 항목을 제거할 수 있습니다. 이 메서드는 제공된 키를 사용하여 항목을 제거하고 값을 반환합니다.

method popitem()는 사전에서 임의의 항목(키, 값)을 제거하고 반환하는 데 사용할 수 있습니다. clear() 메서드를 사용하면 모든 항목을 한 번에 제거할 수 있습니다.

우리는 또한 del 키워드를 사용하여 단일 항목이나 전체 사전을 제거할 수 있습니다.

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

16
{1: 1, 2: 4, 3: 9, 5: 25}
(1, 1)
{2: 4, 3: 9, 5: 25}
{2: 4, 3: 9}
{}

Python 사전 메서드

다음은 사전에서 사용할 수 있는 메서드 목록입니다. 위의 예제에서 몇 가지를 사용했습니다.

Python 사전 메서드
메서드설명
clear()사전에서 모든 항목을 제거합니다.
copy()사전의 표면 복사를 반환합니다.
fromkeys(seq[,v])시퀀스 seq의 요소를 사전의 키로 사용하여 새 딕셔너리를 생성합니다. v는 사전의 모든 키에 대한 초기 값입니다.
get(key[,d])

키의 값을 반환합니다. 키가 존재하지 않으면 d(기본적으로 None)를 반환합니다.

items()시퀀스로 이루어진(키, 값) 튜플 배열을 반환합니다.
keys()사전의 모든 키를 반환합니다.
pop(key[,d])키가 있는 항목을 제거하고 그 값을 반환합니다. 키를 찾지 못하면 d를 반환합니다. d가 제공되지 않고 키를 찾지 못하면 KeyError 오류가 발생합니다.
popitem()}}지정된 키를 제거하고 반환합니다. 딕셔너리가 비어 있으면 KeyError를 발생시킵니다.
setdefault(key[,d])지정된 키의 값을 반환합니다. 지정된 키의 값이 딕셔너리에 없으면 지정된 값, 기본적으로 None를 반환합니다.
update([다른])으로부터 사용다른의 키/키에 대한 값 페어를 업데이트하여 기존 키를 덮어씁니다.
values()딕셔너리의 모든 값을 리스트 형태로 반환합니다.

이러한 메서드를 사용한 몇 가지 예제가 있습니다.

marks = {}.fromkeys(['Math', 'English', 'Science'], 0)
# 출력: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)
for item in marks.items():
    print(item)
# 출력: ['English', 'Math', 'Science']
list(sorted(marks.keys()))

Python 딕셔너리 이해

딕셔너리 이해는 Python에서 이터레이터를 사용하여 새 딕셔너리를 생성하는 유연하고 간결한 방법입니다.

딕셔너리 이해는 표현식 쌍(키: 값)을 포함하고 괄호{} 내의 for 문을 따릅니다.

이는 각 항목이 숫자와 그 제곱의 쌍을 포함하는 딕셔너리를 만드는 예제입니다.

squares = {x: x*x for x in range(6)}
# 출력: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
print(squares)

이 코드는 다음과 동일합니다

squares = {}
for x in range(6):
   squares[x] = x*x

딕셔너리 이해는 더 많은for또는if 문

선택적 if 문을 통해 항목을 필터하여 새 딕셔너리를 형성할 수 있습니다.

이는奇수 항목만 포함하는 딕셔너리 예제입니다.

odd_squares = {x: x*x for x in range(11) if x%2 == 1}
# 출력: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
print(odd_squares)

더 많은 정보를 얻으려면 방문하세요파이썬 딕셔너리 이해

기타 딕셔너리 작업

딕셔너리 멤버십 테스트

우리는 키가 딕셔너리에 있는지 테스트하기 위해 키워드를 사용할 수 있습니다. 멤버십 테스트는 키에만 적용되며 값을 대신하지 않습니다.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# 출력: True
print(1 in squares)
# 출력: True
print(2 not in squares)
# 키 대신 값에 대한 멤버십 테스트만 수행
# 출력: False
print(49 in squares)

딕셔너리 순회

사용자 for 반복문을 통해 딕셔너리의 각 키를 순회할 수 있습니다.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

내장 딕셔너리 함수

all()、any()、len()、cmp()、sort() 등과 같은 내장 함수는 딕셔너리와 함께 다양한 작업을 수행하는 데 사용됩니다.

내장 딕셔너리 함수
기능설명
all()

딕셔너리의 모든 키가 true이거나 딕셔너리가 비어 있으면 True를 반환합니다.

any()

딕셔너리의 어떤 키라도 true라면 True를 반환합니다. 딕셔너리가 비어 있으면 False를 반환합니다.

len()딕셔너리의 길이(항목 수)를 반환합니다.
cmp()두 딕셔너리 항목을 비교합니다.
sorted()새로 정렬된 키 목록을 딕셔너리에서 반환합니다.

내장 함수를 사용하여 딕셔너리를 처리하는 몇 가지 예제를 들어보겠습니다.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# 출력: 5
print(len(squares))
# 출력: [1, 3, 5, 7, 9]
print(sorted(squares))