찾다
백엔드 개발파이썬 튜토리얼당신이 알아야 할 Python 사전의 사용법

이 글의 Python 버전은 3.7.X입니다. 이 글을 읽기 전에 Python 사전의 기본 사용법을 이해해야 합니다.

당신이 알아야 할 Python 사전의 사용법

Introduction

사전(dict)은 다음에 내장된 데이터 구조입니다. Python. 여러 개의 키-값 쌍으로 구성됩니다. 키(key)와 값(value)은 콜론으로 구분됩니다. 각 키-값 쌍은 중괄호({)로 구분됩니다. }) 키는 고유해야 하며 값은 모든 유형이 될 수 있지만 키는 문자열, 숫자 또는 튜플과 같은 변경할 수 없는 유형이어야 합니다.

권장: "python tutorial"

하단 레이어는 해시 테이블을 사용하여 키와 값을 연결하며 dict는 순서가 없습니다. 기능은 다음과 같습니다:

● 검색 및 삽입 속도가 매우 빠르며 키 수가 증가해도 느려지지 않습니다.

● 더 많은 메모리가 필요합니다

# 🎜🎜#그래서 dict는 공간과 시간을 교환하는 데이터 구조로, 빠른 검색이 필요한 시나리오에 사용됩니다.

작업: 일반 메서드

get()

특정 키의 값을 반환합니다. 존재하지 않는 경우 오류 보고 없이 기본값(기본값은 None)을 반환합니다. 구문은 dict.get(key)입니다.

dict_1['age'] = 24
In [7]: print(dict_1.get('age'))
24
In [11]: print(dict_1.get('nama'))
None
In [12]: print(dict_1['nama'])
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-12-ef61a380920e> in <module>
----> 1 print(dict_1[&#39;nama&#39;])
KeyError: &#39;nama&#39;

key in dict

in 연산자를 사용하여 키가 사전에 존재하는지 확인합니다. 키가 있으면 True를 반환합니다. 그렇지 않으면 False를 반환합니다. 구문은 다음과 같습니다. key in dict.

In [15]: dict_1
Out[15]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None}
In [16]: print(&#39;name&#39; in dict_1)
True
In [17]: print(&#39;nama&#39; in dict_1)
False

Python 2에서 이 함수는 has_key() 메서드를 사용하여 구현됩니다.

items()

목록 형식의 탐색 가능한(키, 값) 튜플 배열을 반환하며 구문은 dict.items() 입니다.

In [18]: dict_1
Out[18]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None}
In [19]: print(dict_1.items())
dict_items([(&#39;name&#39;, None), (&#39;age&#39;, 24), (&#39;sex&#39;, None)])
In [20]: for key, value in dict_1.items():
    ...:     print(key, value)
    ...:
name None
age 24
sex None

keys()

사전의 모든 키를 목록으로 반환: dict.keys()

In [21]: dict_1
Out[21]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None}
In [22]: print(dict_1.keys())
dict_keys([&#39;name&#39;, &#39;age&#39;, &#39;sex&#39;])
#🎜 🎜 #

values()

사전의 모든 값을 목록으로 반환: dict.values()

In [27]: dict_1
Out[27]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None, &#39;sub_name&#39;: &#39;Tony&#39;}
In [28]: print(dict_1.values())
dict_values([None, 24, None, &#39;Tony&#39;])
setdefault()
和get()类似,用户获得与给顶尖相关联的值,不同的是,该方法如果键不存在时会添加键并将值设为默认值,语法为:dict.setdefault(key, default=None)。
In [23]: dict_1
Out[23]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None}
In [24]: print(dict_1.setdefault(&#39;name&#39;))
None
In [25]: print(dict_1.setdefault(&#39;name&#39;, &#39;Tony&#39;))
None
In [26]: print(dict_1.setdefault(&#39;sub_name&#39;, &#39;Tony&#39;))
Tony
In [27]: dict_1
Out[27]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None, &#39;sub_name&#39;: &#39;Tony&#39;}

#🎜🎜 #update( )

구문은 dict_1.update(dict_2)이며, 이는 dict_2의 키-값 쌍을 dict_1로 업데이트하는 데 사용됩니다. 덮어쓰게 됩니다.

In [31]: dict_1
Out[31]: {&#39;name&#39;: None, &#39;age&#39;: 24, &#39;sex&#39;: None, &#39;sub_name&#39;: &#39;Tony&#39;}
In [32]: dict_2
Out[32]: {&#39;name&#39;: &#39;Mary&#39;, &#39;age&#39;: 18, &#39;sex&#39;: None, &#39;sub_name&#39;: &#39;&#39;}
In [33]: dict_1.update(dict_2)
In [34]: dict_1
Out[34]: {&#39;name&#39;: &#39;Mary&#39;, &#39;age&#39;: 18, &#39;sex&#39;: None, &#39;sub_name&#39;: &#39;&#39;}

clear()

사전의 모든 항목을 삭제합니다(dict.clear()). 예:

In [1]: dict_1 = dict(name="Tony", age=24)
In [2]: dict_2 = dict_1
In [3]: print(dict_2)
{&#39;name&#39;: &#39;Tony&#39;, &#39;age&#39;: 24}
In [4]: dict_2.clear()
In [5]: dict_2
Out[5]: {}
In [6]: dict_1
Out[6]: {}
# 🎜🎜#

copy()

원래 사전의 얕은 복사본, 동일한 키-값 쌍인 dict.copy()를 사용하여 새 사전을 반환합니다. 예: # 🎜🎜#

In [1]: dict_1 = dict(name=&#39;Tony&#39;, info=[&#39;boy&#39;, 24])
In [2]: dict_3 = dict_1.copy()
In [3]: dict_3[&#39;name&#39;] = "Ring"
In [4]: dict_3[&#39;info&#39;].remove(&#39;boy&#39;)
In [5]: dict_3
Out[5]: {&#39;name&#39;: &#39;Ring&#39;, &#39;info&#39;: [24]}
In [6]: dict_1
Out[6]: {&#39;name&#39;: &#39;Tony&#39;, &#39;info&#39;: [24]}
fromkeys()

다음의 요소를 기반으로 새 사전 dict.fromkeys(seq[, value])를 만듭니다. 시퀀스 seq 사전의 키, value는 사전의 모든 키에 해당하는 초기 값입니다. 여기서 value는 선택적 매개변수이고 기본값은 None입니다. 데이터 초기화에 적합합니다. 예:

In [1]: info = [&#39;name&#39;, &#39;age&#39;, &#39;sex&#39;]
In [2]: dict_1 = dict.fromkeys(info)
In [3]: dict_1
Out[3]: {&#39;name&#39;: None, &#39;age&#39;: None, &#39;sex&#39;: None}
Common Operations

Merge Dictionary # 🎜🎜#네 가지 방법이 있습니다:

정상 처리

In [15]: dict_1
Out[15]: {&#39;Tony&#39;: 24}
In [16]: dict_2
Out[16]: {&#39;ben&#39;: 18}
In [17]: dict3 = dict()
In [18]: for key, value in dict_1.items():
    ...:     dict_3[key] = value
    ...:
In [19]: for key, value in dict_2.items():
    ...:     dict_3[key] = value
    ...:
In [20]: dict_3
Out[20]: {&#39;Tony&#39;: 24, &#39;ben&#39;: 18}

update()

#🎜🎜 #

In [9]: dict_1
Out[9]: {&#39;Tony&#39;: 24}
In [10]: dict_2
Out[10]: {&#39;ben&#39;: 18}
In [12]: dict_3 = dict_1.copy()
In [13]: dict_3.update(dict_2)
In [14]: dict_3
Out[14]: {&#39;Tony&#39;: 24, &#39;ben&#39;: 18}
사전 dict(d1, **d2) 방법의 도움으로

In [33]: dict_1
Out[33]: {&#39;Tony&#39;: 24}
In [34]: dict_2
Out[34]: {&#39;ben&#39;: 18}
In [35]: dict_3 = dict(dict_1, **dict_2)
In [36]: dict_3
Out[36]: {&#39;Tony&#39;: 24, &#39;ben&#39;: 18}
Advanced

# 🎜🎜#Dictionary derivation

은 하단 레이어가 C로 구현된다는 장점이 있어 훨씬 빠르게 사용하는 것이 좋습니다. .

사전 키 값 교환

사전 이해를 사용하여 사전의 키 값을 쉽게 교환할 수 있습니다.

In [42]: dict_4
Out[42]: {24: &#39;Tony&#39;, 18: &#39;ben&#39;}
In [43]: dict_3
Out[43]: {&#39;Tony&#39;: 24, &#39;ben&#39;: 18}
In [44]: dict_4 = {k:v for v, k in dict_3.items()}
In [45]: dict_4
Out[45]: {24: &#39;Tony&#39;, 18: &#39;ben&#39;}
# 🎜🎜#

사전에서 하위 집합 추출

그 자체가 다른 사전의 하위 집합인 사전을 만들고 싶습니다.

예:

In [88]: a = {&#39;Ben&#39;: 18, &#39;Jack&#39;: 12, &#39;Ring&#39;: 23, &#39;Tony&#39;: 24}
In [89]: b = {k:v for k, v in a.items() if v > 18}
In [90]: b
Out[90]: {&#39;Ring&#39;: 23, &#39;Tony&#39;: 24}

순서가 지정된 사전 생성

Python3.6 이전의 사전은 순서가 없습니다. 그러나 때때로 우리는 사전의 질서를 유지해야 합니다. orderDict는 dict를 기반으로 사전의 질서를 달성할 수 있습니다. 여기서 순서는 사전 키가 삽입된 순서대로 배열하는 것을 의미합니다. -in, first-out dict. 용량이 한도를 초과하면 가장 먼저 추가된 키가 먼저 삭제됩니다.

예:

In [49]: from collections import OrderedDict
In [50]: ordered_dict = OrderedDict([(&#39;a&#39;, 2), (&#39;b&#39;, 4), (&#39;c&#39;, 5)])
In [51]: for key, value in ordered_dict.items():
    ...:     print(key, value)
    ...:
a 2
b 4
c 5

사전 생성 시 OrderedDict가 삽입 순서에 따라 정렬되는 것을 확인할 수 있습니다.

Principle: OrderedDict는 요소가 추가되는 순서에 따라 키 위치를 정렬하는 양방향 연결 목록을 내부적으로 유지 관리합니다. 이로 인해 OrderedDict의 크기도 2배 이상 커집니다. 평범한 사전.

목록에서 동일한 키를 가진 사전 병합

이는 소위 단일 키 다중 값 사전을 생성하는 것이며, 해당하는 여러 값을 저장해야 합니다. 목록이나 집합과 같은 다른 컨테이너에서는 여러 값이 고유해야 하는지 여부에 따라 다릅니다.

예:

In [64]: from collections import defaultdict
In [65]: a = [{&#39;a&#39;: 1}, {&#39;b&#39;: 3}, {&#39;c&#39;: 4}, {&#39;a&#39;:5}, {&#39;b&#39;:2}, {&#39;b&#39;: 4}]
In [66]: b = defaultdict(list)
In [67]: [b[k].append(v) for item in a for k, v in item.items()]
Out[67]: [None, None, None, None, None, None]
In [68]: b
Out[68]: defaultdict(list, {&#39;a&#39;: [1, 5], &#39;b&#39;: [3, 2, 4], &#39;c&#39;: [4]})
In [69]: b[&#39;a&#39;]
Out[69]: [1, 5]

두 사전 간의 유사점과 차이점 찾기

시나리오: 유사점과 차이점 찾기 두 사전 사이의 유사점과 차이점(동일한 키 또는 동일한 값 포함).

분석: 사전은 일련의 키 값 간의 매핑 모음입니다.

keys()는 사전의 모든 키를 반환합니다. 사전의 키는 집합 연산을 지원하므로 집합의 교집합과 보수를 사용하여 사전의 키를 처리할 수 있습니다.

items()는 (키, 값)으로 구성된 객체를 반환합니다. ) 및 집합 연산을 지원합니다. values()는 모든 값이 고유하다는 보장이 없기 때문에 집합 연산을 지원하지 않지만 연산을 판단해야 하는 경우 먼저 값을 변환할 수 있습니다. 그것을 달성하기 위해 세트로.

예:

In [78]: a = {&#39;a&#39;:1, &#39;b&#39;:2, &#39;c&#39;:3}
In [79]: b = {&#39;b&#39;:3, &#39;c&#39;:3, &#39;d&#39;:4}
In [80]: a.keys() & b.keys()
Out[80]: {&#39;b&#39;, &#39;c&#39;}
In [81]: a.keys() - b.keys()
Out[81]: {&#39;a&#39;}
In [82]: a.items() & b.items()
Out[82]: {(&#39;c&#39;, 3)}

또 다른 예는 사전을 생성할 때 특정 키가 제거될 수 있다고 예상됩니다.

In [85]: a
Out[85]: {&#39;a&#39;: 1, &#39;b&#39;: 2, &#39;c&#39;: 3}
In [86]: c = {k: a[key] for k in a.keys() - {&#39;b&#39;}}
In [87]: c
Out[87]: {&#39;a&#39;: 3, &#39;c&#39;: 3}

이 문서의 출처는 다음과 같습니다. #🎜 🎜#python tutorial

칼럼, 학습에 오신 것을 환영합니다!

위 내용은 당신이 알아야 할 Python 사전의 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 博客园에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
获取字典中的第一个和最后一个元素的Python程序获取字典中的第一个和最后一个元素的Python程序Sep 07, 2023 pm 05:01 PM

Python是一种解释型的、面向对象的、高级的编程语言,具有动态语义。由GudioVanRossum于1991年开发。它支持多种编程范式,包括结构化、面向对象和函数式编程。在深入讨论这个主题之前,让我们先复习一下与我们提供的问题相关的基本概念。字典是一组独特、可变且有序的项。在字典的书写中使用花括号,并且它们包含键和值:键名可以用来引用字典对象。数据值以键:值对的形式保存在字典中。有序和无序含义当我们说字典是有序的时,我们是指其内容具有一定的顺序,不会改变。无序的项目缺乏明确的顺序,因此无法使用

空字典键不正确:如何解决Python的字典键错误?空字典键不正确:如何解决Python的字典键错误?Jun 24, 2023 pm 03:03 PM

Python中的字典是一种灵活而强大的数据结构,它可以存储键值对,并且具备快速的查找和插入功能。然而,如果不小心处理字典的键值对,可能会遇到空字典键的问题。这个问题通常会导致代码崩溃或输出非预期结果。本文将介绍两种解决Python空字典键错误的方法。方法一:使用if语句防止空字典键Python的字典中不能有重复键,否则会覆盖之前的键值对。当一个字典键的值为空

如何在Python中获取字典中的下一个键?如何在Python中获取字典中的下一个键?Aug 28, 2023 pm 11:45 PM

字典是Python强大的数据类型。它由键值对组成。通过这种数据类型可以有效地完成搜索、追加等操作。虽然访问字典中的值很简单,但在某些情况下您可能需要在字典中查找下一个键。Python提供了多种方法来实现此目的,具体取决于您的具体要求。在本文中,我们将探索在Python中获取字典中下一个键的不同方法。使用keys和index方法字典在Python中是无序集合。因此,我们首先需要将键转换为某种有序形式。我们可以先将所有键以列表的形式追加。接下来,我们可以通过索引列表来找到下一个键。借助键,我们还可以

C++程序初始化字典C++程序初始化字典Sep 09, 2023 pm 07:01 PM

C++在同名的字典方面与Python不同,但它具有相似功能的相同数据结构。C++支持映射,可在STL类std::map中使用。映射对象在每个条目中包含一对值,一个是键值,另一个是映射值。键值用于在映射中搜索和唯一标识条目。而映射值不一定是唯一的,键值在映射中必须始终是唯一的。让我们看一下如何使用映射。首先,让我们看看如何在C++中定义一个映射数据结构。语法#includemap<data_type1,data_type2>myMap;让我们举个例子,看看如何做到这一点−示例#incl

Python函数介绍:isinstance函数的用法和示例Python函数介绍:isinstance函数的用法和示例Nov 04, 2023 pm 03:15 PM

Python函数介绍:isinstance函数的用法和示例Python是一门功能强大的编程语言,提供了许多内置函数,使得编程变得更加方便和高效。其中一个非常有用的内置函数是isinstance()函数。本文将介绍isinstance函数的用法和示例,并提供具体的代码示例。isinstance()函数用于判断一个对象是否是指定的类或类型的实例。该函数的语法如下

Python函数介绍:abs函数的用法和示例Python函数介绍:abs函数的用法和示例Nov 03, 2023 pm 12:05 PM

Python函数介绍:abs函数的用法和示例一、abs函数的用法介绍在Python中,abs函数是一个内置函数,用于计算给定数值的绝对值。它可以接受一个数字参数,并返回该数字的绝对值。abs函数的基本语法如下:abs(x)其中,x是要计算绝对值的数值参数,可以是整数或浮点数。二、abs函数的示例下面我们将通过一些具体的示例来展示abs函数的用法:示例1:计算

Python程序以删除字典中的空值为例Python程序以删除字典中的空值为例Sep 03, 2023 pm 04:45 PM

字典被称为集合数据类型。它们以键值对的形式存储数据。它们是有序的且可变的,即它们遵循特定的顺序并被索引。我们可以更改键的值,因此它是可操纵的或可更改的。字典不支持数据重复。每个键可以有多个与其关联的值,但单个值不能有多个键。我们可以使用字典来执行许多操作。整个机制取决于存储的值。在本文中,我们将讨论可用于从字典中删除“空值”的技术。在开始主要操作之前,我们必须对字典中的值处理有一个深入的了解。让我们快速浏览一下本文的概述。本文分为两部分-第1st部分将重点介绍“空值”的概念及其意义。在第2nd部

Python函数介绍:getattr函数的用法和示例Python函数介绍:getattr函数的用法和示例Nov 04, 2023 pm 01:39 PM

Python函数介绍:getattr函数的用法和示例在Python中,getattr()是一个内置函数,用于获取对象的属性值。在不知道对象的属性名称的情况下,可以使用getattr()函数来动态地访问属性。本文将介绍getattr()函数的语法、用法和示例。getattr()函数的语法如下:getattr(object,name[,default])参数

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 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기