>  기사  >  백엔드 개발  >  Python 사전 작업 요약(예제 포함)

Python 사전 작업 요약(예제 포함)

不言
不言앞으로
2018-10-20 14:59:202033검색

이 기사는 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

The Dictionary in Python is unordered 예, 검색된 키는 해시에 따라 저장되므로 순서가 없습니다. 때로는 사전의 항목이나 키를 순서대로 저장해야 하는 경우, Ordered 사전인 collections 모듈에서 OrderedDict를 사용할 수 있습니다. 구조.
샘플 코드는 다음과 같습니다(Python 버전은 3.5.2):

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

  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.defaultdictrrreee

Default Dictionary collections.defaultdict#🎜🎜 ##🎜 🎜# collections.defaultdict는 Python 내장 dict 클래스의 하위 클래스입니다. 첫 번째 매개변수는 default_factory의 초기 값을 제공합니다. 기본값은 없음입니다. 메서드를 재정의하고 쓰기 가능한 인스턴스 변수를 추가합니다. 다른 기능은 dict와 동일하지만 존재하지 않는 키에 대한 기본값을 제공하므로 KeyError 예외를 방지합니다.
collections.defaultdict의 장점을 보여주기 위해 통계 목록에 있는 단어의 빈도를 예로 들어 보겠습니다.
  일반적으로 통계 목록의 단어 빈도 코드는 다음과 같습니다.

rrreee

출력 결과는 다음과 같습니다.

rrreee

collections.defaultdict, 코드를 최적화할 수 있습니다: #🎜🎜#rrreee#🎜🎜#기타 기본 초기값은 설정, 목록, 딕셔너리 등을 설정할 수 있습니다. #🎜🎜##🎜🎜##🎜🎜#

위 내용은 Python 사전 작업 요약(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제