이 기사는 Python 사전의 작동을 요약한 것입니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
사전(dict) 구조는 Python에서 흔히 사용되는 데이터 구조입니다. 저자는 독자들에게 조금이나마 영감을 주고자 제 실제 사용 경험을 바탕으로 사전에 관한 지식을 요약했습니다~
사전을 만드는 일반적인 방법은 먼저 빈 사전을 만든 다음 사전을 만드는 것과 같이 키와 값을 하나씩 추가하는 것입니다. person={'name':' Tome', 'age':22, 'city':'Shanghai, 'ID': '073569'}, 다음 코드를 사용할 수 있습니다:
person = {} person['name'] = 'Tom' person['age'] = 22 person['city'] = 'Shanghai' person['ID'] = '073569' print(person)
The 출력 결과는 다음과 같습니다.
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}#🎜 🎜#이 생성 방법은 간단하고 원시적이며 코드가 충분히 간결하고 우아하지 않습니다. 우리는 zip 기능을 사용하여 이 사전을 간단하고 빠르게 생성합니다.
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print(person)출력 결과는 원본 코드와 일치합니다. 사전 탐색 실제 응용에서는 사전 탐색이 필요한 경우가 많습니다. 구현 방법은 다음 코드를 참조하세요.
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) for key, value in person.items(): print('Key:%-6s, Value:%s'%(key, value))#🎜 🎜#출력 결과는 다음과 같습니다.
Key:name , Value:Tom Key:age , Value:22 Key:city , Value:Shanghai Key:ID , Value:073569
키-값 쌍 교환
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print('对调前:') print(person) Person = {v:k for k,v in person.items()} print('对调后:') print(Person)
출력 결과는 다음과 같습니다.
对调前: {'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 对调后: {'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
Ordered DictionaryOrderedDict
collections
모듈에서 OrderedDict
를 사용할 수 있습니다. 구조. from collections import OrderedDict d = {} d['Tom']='A' d['Jack']='B' d['Leo']='C' d['Alex']='D' print('无序字典(dict):') for k,v in d.items(): print(k,v) d1 = OrderedDict() d1['Tom']='A' d1['Jack']='B' d1['Leo']='C' d1['Alex']='D' print('\n有序字典(OrderedDict):') for k,v in d1.items(): print(k,v)
출력 결과는 다음과 같습니다. collections
模块中的OrderedDict
,它是一种有序的字典结构。
示例代码如下(Python版本为3.5.2):
无序字典(dict): Leo C Jack B Tom A Alex D 有序字典(OrderedDict): Tom A Jack B Leo C Alex D
输出的结果为:
words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = {} for word in words: if word not in freq_dict.keys(): freq_dict[word] = 1 else: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
collections.defaultdict
是Python内建dict
类的一个子类,第一个参数为default_factory属性提供初始值,默认为None
。它覆盖一个方法并添加一个可写实例变量。它的其他功能与dict
相同,但会为一个不存在的键提供默认值,从而避免KeyError
异常。
我们以统计列表中单词的词频为例,展示collections.defaultdict
的优势。
一般情形下,我们统计列表中的单词词频代码为:
sun 2 moon 2 star 4
输出结果如下:
from collections import defaultdict words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = defaultdict(int) for word in words: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
使用collections.defaultdict
rrreee
collections.defaultdict
는 Python 내장 dict
클래스의 하위 클래스입니다. 첫 번째 매개변수는 default_factory의 초기 값을 제공합니다. 기본값은 없음
입니다. 메서드를 재정의하고 쓰기 가능한 인스턴스 변수를 추가합니다. 다른 기능은 dict
와 동일하지만 존재하지 않는 키에 대한 기본값을 제공하므로 KeyError
예외를 방지합니다. collections.defaultdict
의 장점을 보여주기 위해 통계 목록에 있는 단어의 빈도를 예로 들어 보겠습니다. rrreee
출력 결과는 다음과 같습니다.rrreee
collections.defaultdict, 코드를 최적화할 수 있습니다: #🎜🎜#rrreee#🎜🎜#기타 기본 초기값은 설정, 목록, 딕셔너리 등을 설정할 수 있습니다. #🎜🎜##🎜🎜##🎜🎜#
위 내용은 Python 사전 작업 요약(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!