Python 字典的使用详解及实例代码

yizhihongxing

那我就来详细讲解一下Python字典的使用详解及实例代码。

Python字典的使用详解

1. 什么是字典

在Python中,字典是一种可变容器模型,且可存储任意类型对象。字典中的每个元素都是由一个键和一个值组成的键值对,键和值之间用冒号(:)隔开,整个字典用花括号({})括起来。

2. 字典的创建和访问

创建一个空字典和创建一个非空字典的方式如下:

# 创建空字典
d1 = {}
d2 = dict()

# 创建非空字典
d3 = {'name':'Tom', 'age':18}
d4 = dict([('name', 'Jerry'), ('age', 20)])
d5 = dict(name='Tim', age=22)

访问字典内元素的方式为通过键获取值,如果键不存在,则会抛出KeyError异常。如下所示:

d = {'name':'Tom', 'age':18}

print(d['name'])  # Tom
print(d.get('age'))  # 18

print(d['gender'])  # KeyError: 'gender'
print(d.get('gender'))  # None

3. 字典的修改和删除

修改字典的元素可以直接通过赋值的方式进行修改,如果键不存在,则会新添加一对键值对。如下所示:

d = {'name':'Tom', 'age':18}

d['name'] = 'Jerry'
d['gender'] = 'male'

print(d)  # {'name': 'Jerry', 'age': 18, 'gender': 'male'}

删除字典元素可以使用del语句或者pop()方法,del语句会直接删除指定键值对,如果键不存在,则会抛出KeyError异常。pop()方法除了删除指定键值对外,还可以返回被删除的值;如果键不存在,则可以设置默认返回值。如下所示:

d = {'name':'Tom', 'age':18}

del d['age']
print(d)  # {'name': 'Tom'}

name = d.pop('name')
print(d)  # {}
print(name)  # Tom

gender = d.pop('gender', 'unknown')
print(gender)  # unknown

4. 字典的遍历

遍历字典可以使用items()方法,该方法会返回字典的键值对,可以通过for循环遍历。如下所示:

d = {'name':'Tom', 'age':18, 'gender':'male'}

for k, v in d.items():
    print(k, v)

# name Tom
# age 18
# gender male

5. 字典的方法

Python字典提供了很多内置方法,用于实现不同的功能,下面介绍其中一些常用的方法。

5.1 keys()

该方法返回字典的键组成的列表,列表中的键是无序的。如下所示:

d = {'name':'Tom', 'age':18, 'gender':'male'}

print(list(d.keys()))  # ['name', 'age', 'gender']

5.2 values()

该方法返回字典的值组成的列表,列表中的值是无序的。如下所示:

d = {'name':'Tom', 'age':18, 'gender':'male'}

print(list(d.values()))  # ['Tom', 18, 'male']

5.3 clear()

该方法用于清空字典内的所有元素。如下所示:

d = {'name':'Tom', 'age':18, 'gender':'male'}

d.clear()
print(d)  # {}

5.4 copy()

该方法用于复制字典。如下所示:

d1 = {'name':'Tom', 'age':18, 'gender':'male'}

d2 = d1.copy()
print(d2)  # {'name': 'Tom', 'age': 18, 'gender': 'male'}

6. 总结

Python字典是一种非常有用的数据类型,可以用它来存储不同类型的数据,并且可以方便地对数据进行增、删、改、查等操作。在使用字典时,需要注意字典的键必须是不可变类型,如字符串、整数等,不能使用列表、字典等可变类型。同时,字典中的元素是无序的,遍历字典时需要注意。

实例1:统计字符串中各字符出现的次数

text = "Python is a popular programming language"

char_dict = {}
for char in text:
    if char in char_dict:
        char_dict[char] += 1
    else:
        char_dict[char] = 1

print(char_dict)  # {'P': 1, 'y': 1, 't': 2, 'h': 2, 'o': 4, 'n': 5, ' ': 4, 'i': 2, 's': 2, 'a': 4, 'p': 2, 'u': 2, 'l': 2, 'r': 2, 'g': 3, 'm': 2, 'g': 3, 'e': 2}

该示例遍历字符串中的每个字符,使用字典统计每个字符出现的次数,最后输出结果。

实例2:创建一个通讯录

contacts = {}

while True:
    name = input("请输入联系人姓名:")
    if not name:
        break

    phone = input("请输入联系人电话:")
    email = input("请输入联系人邮箱:")

    contacts[name] = {'phone': phone, 'email': email}

print(contacts)

该示例利用字典,创建一个简单的通讯录程序,用户可以通过输入姓名、电话、邮箱,来添加新的联系人。使用字典来存储联系人信息,键是联系人的姓名,值是包含电话和邮箱的子字典。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 字典的使用详解及实例代码 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python+requests接口自动化框架的实现

    以下是关于Python+requests接口自动化框架的实现: Python+requests接口自动化框架的实现 requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接响应。结合Python的unittest测试框架,可以实现接口自动化测试。以下是Python+requests接口自动化框架的实现: 安装reque…

    python 2023年5月14日
    00
  • 关于准备/展示 Python 大师班的建议?

    【问题标题】:Advice on preparing/presenting a Python Master Class?关于准备/展示 Python 大师班的建议? 【发布时间】:2023-04-02 01:26:01 【问题描述】: 我正在准备一个大师班,向工作中的一群技术艺术家#展示。小组中的每个人都曾使用 C/C++/MEL/MAXScript/Pyt…

    Python开发 2023年4月8日
    00
  • Python中最大递归深度值的探讨

    单独讨论 Python 中最大递归深度的问题不太有意义。对于这个问题需要从 Python 如何处理递归函数开始,以及递归深度和计算机内存容量有何关系等方面来进行探讨。 Python 如何处理递归函数 Python 中的递归函数和其他语言一样,也是直接或间接调用自身。在一个递归函数中,每一次调用该函数都会在内存中产生一个对应的栈帧。一个栈帧包含这个函数的所有局…

    python 2023年6月3日
    00
  • python实现飞机大战游戏(pygame版)

    Python实现飞机大战游戏(pygame版)攻略 1. 简介 飞机大战游戏是一款非常经典的游戏,它在多个平台上都有发行。在Python中,我们可以使用pygame模块来实现这个游戏。 2. 安装pygame模块 首先,你需要安装pygame模块。可以使用以下命令在终端中安装: pip install pygame 3. 实现游戏窗口 使用pygame模块创…

    python 2023年6月2日
    00
  • 利用python实现聚类分析K-means算法的详细过程

    Python实现K-means聚类算法 K-means聚类算法是一种常用的无监督学习算法,它的主要思想是将数据集划分为K个簇,使得同一簇内的数据点相似度较高,不同簇之间的数据点相似度较低。本文将详细讲解如何使用Python实现K-means聚类算法,并提供两个示例说明。 K-means聚类算法原理 K-means聚类算法的基本思想是从数据集中随机选择K个点作…

    python 2023年5月14日
    00
  • Python日期与时间模块(datetime+time+Calendar+dateuil )相关使用讲解

    Python日期与时间模块提供了处理日期和时间的各种方法,包含了datetime、time、Calendar、dateutil等多个模块。下面是Python日期与时间模块的使用攻略: datetime模块 datetime.datetime对象提供了大量有用的属性和方法,如获取当前日期和时间,计算日期的差值等。 获取当前日期和时间 import dateti…

    python 2023年5月14日
    00
  • Python中函数的用法实例教程

    Python中函数的用法实例教程 什么是函数? 在Python中,函数是一段可重用的代码块,其可以接收输入参数并返回输出结果。 函数需要有一个名字来区别于其他代码段,名字规则与变量名相同。定义函数时,需要使用关键字 def 来指定函数名和参数列表。函数体需要缩进,我们可以在函数体中实现各种操作逻辑。 例如,下面定义了一个简单的函数: def hello_wo…

    python 2023年6月2日
    00
  • 对Python3 * 和 ** 运算符详解

    对Python3 * 和 ** 运算符详解 在Python3中,*和**运算符代表不同的意义。下面我们就来详细讲解这两个运算符。 *运算符 *运算符在Python中有多种用法,最常见的用法是将它用于序列类型数据的解包操作。 序列解包 如果想要将一个序列类型的数据拆分成多个单独的对象,可以使用*运算符。 示例代码: lst = [1, 2, 3, 4, 5] …

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部