English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 기사에서는 Python dictionary에 대해 모든 것을 배울 것입니다; 항목을 생성하고, 접근하고, 추가하고, 제거하는 방법, 그리고 다양한 내장 메서드 등입니다.
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} {}
다음은 사전에서 사용할 수 있는 메서드 목록입니다. 위의 예제에서 몇 가지를 사용했습니다.
메서드 | 설명 |
---|---|
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에서 이터레이터를 사용하여 새 딕셔너리를 생성하는 유연하고 간결한 방법입니다.
딕셔너리 이해는 표현식 쌍(키: 값)을 포함하고 괄호{} 내의 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
선택적 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))