찾다
백엔드 개발파이썬 튜토리얼Python 매핑 유형 관련 소개

매핑 유형은 데이터 항목과 해당 키 및 값에 액세스하는 방법을 제공하는 반복 가능한 키-값 데이터 항목의 조합입니다. python3에서는 순서가 지정되지 않은 두 가지 매핑 유형인 내장 dict와 표준 라이브러리 collections.defaultdict가 지원됩니다. 를 입력하세요.

python3.1 이후에는 순서가 지정된 매핑 유형도 도입되었습니다: collections.OrderedDict.

관련 권장 사항: "python video"

Python 매핑 유형 관련 소개

특징:

1. 따라서 모든 내장 고정 데이터 유형은 매핑 유형에서 키로 사용될 수 있습니다(모든 내장 고정 유형은 해시될 수 있음). 현재 노출되는 고정 데이터 유형은 int, float, complex입니다. , bool, str, tuple,frozenset;

2. 각 키와 관련된 값은 모든 객체가 될 수 있습니다.

3 매핑 유형도 반복 가능합니다.

4. 비교 연산자, 소속 연산자 in/not in 및 내장 len() 함수를 사용하여 매핑 유형을 비교할 수 있습니다.

1.dict(사전)

dict 데이터 유형은 순서가 지정되지 않은 변경 가능한 결합 데이터 유형으로, 0-n 키-값 쌍을 포함하며 키는 해시될 수 있는 객체를 가리킵니다. , 값은 모든 개체에 대한 참조를 가리킬 수 있습니다. 키는 해시 가능한 객체 참조이므로 dict가 변경 가능하고 dict가 순서가 없고 인덱스가 없으므로 dict에서 데이터 항목을 추가하고 제거할 수 있으므로 키의 고유성이 보장됩니다. 샤딩 연산자를 사용합니다.

사전 생성

1.dict()를 함수로 호출할 수 있습니다. 이때 빈 dict가 생성됩니다.

>>> dict()
{}
>>>

dict()에 매핑 유형 매개변수가 전달되면

>>> d1 = {"key1":"value1","key2":"value2"}
>>> dict(d1)
{'key1': 'value1', 'key2': 'value2'}
>>>

dict()와 같은 사전은 시퀀스 유형 매개변수를 허용할 수도 있지만 전제는 시퀀스 자체의 각 데이터 항목이 두 개의 객체를 포함하는 시퀀스이고 첫 번째 객체가 키로 사용된다는 것입니다. , 두 번째는 다음과 같은 값입니다.

>>> d1 = dict((("k1","v1"),("k2","v2")))   #使用元组创建
>>> d1
{'k1': 'v1', 'k2': 'v2'}
>>> 
>>> d1 = dict([("k1","v1"),("k2","v2")])   #使用序列创建
>>> d1
{'k1': 'v1', 'k2': 'v2'}
>>>

dict()는 키워드 매개변수를 사용하여 생성할 수도 있습니다. 여기서 키는 키워드로 사용되고 값은 다음과 같이 키워드 값으로 사용됩니다.

>>> dict(id=1,name="zhangsan",age=23)
{'id': 1, 'name': 'zhangsan', 'age': 23}
>>>

참고: 키워드는 유효한 Python 식별자여야 합니다

2. 중괄호를 사용하여 사전을 만듭니다. 비어 있지 않은 사전은 여러 항목으로 구성되며 각 항목은 쉼표로 구분됩니다. , 각 항목은

>>> dict2 = {"name":"kobe","age":33,"num":24}
>>> dict2
{'name': 'kobe', 'age': 33, 'num': 24}
>>>

3과 같은 K:V 형식으로 생성됩니다. 사전 의미를 사용하여 사전 만들기

defaultdict는 dict의 모든 작업과 메서드를 지원하는 dict의 하위 클래스입니다. dict와의 차이점은 dict에 특정 키가 포함되어 있지 않으면 dict[x]를 통해 값을 가져올 때 KeyError 예외가 발생하지만, defaultdict인 경우 해당 키와 default 값으로 새 항목이 생성됩니다. 값.

2. collections.defaultdict(기본 사전)

collections.defaultdict

만들기 collections.defaultdict()를 통해 매개변수에 따라 만드는 방법은 두 가지가 있습니다.

* 1. 매개변수 유형을 사용하여 생성:

>>> import collections
>>> cd1 = collections.defaultdict(int)
>>> cd2 = collections.defaultdict(list)
>>> cd3 = collections.defaultdict(str)
>>> cd1["x"]
0
>>> cd2["x"]
[]
>>> cd3["x"]
''
>>>

Int, list, str이 여기에서 각각 사용되며 기본값은 0, [], "

* 2. 함수 이름을 사용하여 생성:

>>> def name():
    return 'zhangsan'
>>> cd4 = collections.defaultdict(name)
>>> cd4["x"]
'zhangsan'
>>>

이 방법을 통해 기본 사전의 기본값을 보다 유연하게 만들 수 있습니다.

collections.defaultdict()는 매개변수 없이 또는 None을 전달할 수 있지만, 그렇다면 기본값은 그렇지 않습니다.

>>> cd5 = collections.defaultdict()
>>> cd5["x"]
Traceback (most recent call last):
  File "<pyshell#254>", line 1, in <module>
    cd5["x"]
KeyError: &#39;x&#39;
>>>

collections.defaultdict를 사용하면 dict의 get(k,v) 및 setdefault() 메서드를 바꿀 수 있습니다.

3 collections.OrderedDict

OrderedDict는 dict 하위 클래스입니다. 모든 dict 메소드를 지원합니다. 새 항목이 기존 항목을 덮어쓰는 경우 항목을 삭제하고 다시 삽입하면 항목이 끝으로 이동하므로 순서가 다음과 같습니다. , 두 OrderedDict는 동일합니다. 그러나 OrderedDict를 일반 dict와 비교할 때 순서는 무시됩니다.

class collections.OrderedDict([items])

실행 결과

from collections import OrderedDict
d = {&#39;banana&#39;: 3, &#39;apple&#39;: 4}
od1 = OrderedDict({&#39;banana&#39;: 3, &#39;apple&#39;: 4})
od2 = OrderedDict({&#39;apple&#39;: 4, &#39;banana&#39;: 3})
print(od1 == od2)
print(od1 == d)

3. 일반 dict의 이 방법은 그렇지 않습니다. 매개변수를 허용하고 삭제만 가능합니다. OrderedDict는 dict보다 더 유연하며 마지막 매개변수를 허용합니다. last=True인 경우 일반 방법과 동일하며 last=False인 경우 첫 번째 항목을 따릅니다. FIFO 순서에 따라 요소가 삭제됩니다

FalseTrue

. 실행 결과

OrderedDict.popitem(last=True)

4. 간단한 개선

OrderedDict는 항목이 수정되면 순서가 수정되지 않습니다.

from collections import OrderedDict
od1 = OrderedDict({&#39;banana&#39;: 3, &#39;apple&#39;: 4})
od1.popitem(False)
print(od1)

그러나 때로는 수정하고 삽입할 때 동일한 효과가 필요할 수 있습니다. __setitem__() 메서드를 다시 작성하여 먼저 요소를 삭제한 다음 수정할 때 삽입하면 됩니다. .

위 내용은 Python 매핑 유형 관련 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경