Python入门教程(十五)Python的字典

下面是关于“Python入门教程(十五)Python的字典”的详细讲解:

什么是Python字典

Python字典是一种键值对存储的数据结构,通过键值对的方式来定位并取得对应的数据。在 Python 中,字典是用花括号 {} 包裹起来的数据集合,键值对之间用逗号 , 分隔。

字典的键可以是任意不可变的数据类型,如字符串、数字和元组等,同时字典中的键也必须是唯一的,而同一个字典中的值则可以重复。

以下是一个字典的示例:

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}

在这个示例中,键 'name''age''gender' 分别对应着值 'Lucy'20'female'

字典的基本操作

获取字典中的数据

我们可以使用键来获取字典中的值,示例如下:

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}
print(person['name']) # 输出:Lucy
print(person['age']) # 输出:20
print(person['gender']) # 输出:female

另外,也可以通过 get() 方法来获取字典中的值,如果字典中不存在对应的键,则返回默认值(默认为 None):

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}
print(person.get('name')) # 输出:Lucy
print(person.get('height')) # 输出:None
print(person.get('address', 'Unkown')) # 输出:Unkown

修改字典中的数据

如果需要修改字典中的数据,只需要指定键并赋新值即可:

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}
person['age'] = 21 # 修改年龄为 21
print(person) # 输出:{'name': 'Lucy', 'age': 21, 'gender': 'female'}

添加新数据到字典

可以通过新增键值对的方式来向字典中添加新数据,示例如下:

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}
person['height'] = 165 # 添加身高
print(person) # 输出:{'name': 'Lucy', 'age': 20, 'gender': 'female', 'height': 165}

删除字典中的数据

使用 del 关键字可以删除字典中的键值对:

person = {'name': 'Lucy', 'age': 20, 'gender': 'female'}
del person['age']
print(person) # 输出:{'name': 'Lucy', 'gender': 'female'}

示例

下面是两个使用 Python 字典的示例:

1. 统计每个字符在字符串中出现的次数

# 定义一个字符串
string = "Python is a powerful programming language."

# 创建一个空字典,用于保存字符和其出现的次数
char_count = {}

# 遍历字符串中的每个字符
for c in string:
    # 判断字符是否已经在字典中出现过
    if c in char_count:
        # 如果出现过,次数加一
        char_count[c] += 1
    else:
        # 如果没有出现过,新创建一个键并赋值为 1
        char_count[c] = 1

# 输出每个字符出现的次数
for c, count in char_count.items():
    print(f"字符 {c} 出现了 {count} 次")

运行结果:

字符 P 出现了 1 次
字符 y 出现了 1 次
字符 t 出现了 2 次
字符 h 出现了 3 次
字符 o 出现了 4 次
字符 n 出现了 4 次
字符   出现了 5 次
字符 i 出现了 2 次
字符 s 出现了 2 次
字符 a 出现了 4 次
字符 p 出现了 2 次
字符 w 出现了 1 次
字符 e 出现了 3 次
字符 r 出现了 3 次
字符 f 出现了 1 次
字符 u 出现了 1 次
字符 l 出现了 1 次
字符 g 出现了 3 次
字符 . 出现了 1 次

2. 查找学生成绩

# 定义一个字典,保存具体的学生成绩
scores = {
    'Lucy': {'Math': 80, 'English': 90, 'Chinese': 85},
    'Tom': {'Math': 70, 'English': 80, 'Chinese': 75},
    'Lily': {'Math': 90, 'English': 75, 'Chinese': 95}
}

# 定义一个函数,用于查找学生成绩
def lookup(name, subject):
    if name in scores:
        if subject in scores[name]:
            return scores[name][subject]
        else:
            return f"{name} 的 {subject} 成绩不存在"
    else:
        return f"不存在名叫 {name} 的学生"

# 分别查找 Lucy 和 Tom 的数学和英语成绩
print(lookup('Lucy', 'Math')) # 输出:80
print(lookup('Tom', 'English')) # 输出:80
print(lookup('Lucy', 'History')) # 输出:Lucy 的 History 成绩不存在
print(lookup('Jack', 'Math')) # 输出:不存在名叫 Jack 的学生

运行结果:

80
80
Lucy 的 History 成绩不存在
不存在名叫 Jack 的学生

以上就是 Python 字典的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python入门教程(十五)Python的字典 - Python技术站

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

相关文章

  • 解决seaborn在pycharm中绘图不出图的问题

    下面是详细的攻略: 解决seaborn在pycharm中绘图不出图的问题 问题背景 当我们使用 seaborn 库在 Pycharm 中绘图时,有可能会出现绘图不出图的问题。 分析解决 环境准备 为了演示该问题以及解决方案,我们需要准备以下环境: Python 环境:安装 anaconda 并创建虚拟环境。可以使用以下命令: shell conda crea…

    python 2023年5月18日
    00
  • Pycharm及python安装详细步骤及PyCharm配置整理(推荐)

    下面我来详细讲解“Pycharm及python安装详细步骤及PyCharm配置整理(推荐)”的完整攻略。 一、python的安装 首先打开 Python 官网(https://www.python.org/downloads/) 选择合适的版本,点击下载按钮。选择完版本后,一定要记得勾选“Add Python xxx to PATH”(xxx 代表你下载的 …

    python 2023年5月19日
    00
  • Python Dtrace 已修补,但运行测试脚本时仍出现“无效的探针说明符”

    【问题标题】:Python Dtrace patched, but still getting “invalid probe specifier” running test scriptsPython Dtrace 已修补,但运行测试脚本时仍出现“无效的探针说明符” 【发布时间】:2023-04-06 19:47:01 【问题描述】: 我用Issue 134…

    Python开发 2023年4月7日
    00
  • python正则表达式re.sub各个参数的超详细讲解

    Python正则表达式re.sub各个参数的超详细讲解 在Python中,re模块提供了正则表达式的处理功能。其中,re.sub()函数用于用指定的字符串替换匹配,返回替换后的字符串。本文将详细讲解Python正则表达式re.sub()函数各个参数,包括pattern、repl、string、count和flags,并提供两个示例说明。 re.sub()函数…

    python 2023年5月14日
    00
  • python使用urllib2模块获取gravatar头像实例

    简述获取gravatar头像的原理 Gravatar是一项用于为用户提供全球通用头像的服务,每个Gravatar对应一个256位MD5哈希值,这个哈希值是基于用户的注册邮箱计算而来的。我们可以在Gravatar的官网上注册一个账号,然后上传对应的头像,这样我们就可以使用这个邮箱地址在任何支持Gravatar的网站上显示自己的头像。 Python中可使用urr…

    python 2023年6月3日
    00
  • 像线程一样管理进程的Python multiprocessing库

    Python multiprocessing库是一个用于并行处理的库,可以用于在多个CPU核心上执行任务,以提高程序的执行速度。用这个库可以实现像线程一样管理进程的效果。下面来介绍一下如何使用Python multiprocessing库来实现像线程一样管理进程的攻略。 使用Python multiprocessing库的步骤: 导入multiprocess…

    python 2023年5月19日
    00
  • 使用python批量修改XML文件中图像的depth值

    下面是使用Python批量修改XML文件中图像的depth值的完整攻略。姑且认为本文中的XML文件类型是VOC格式(即PASCAL VOC格式)。 一、问题描述 图像的depth值是指一张图片的颜色位深(即每个像素占用多少位)。在VOC格式的XML文件中,depth值用来描述图片的颜色位深。但是,在实际操作中,我们可能需要对一组图片的depth值进行批量修改…

    python 2023年6月3日
    00
  • Python和其他编程语言有什么区别?

    Python是一种高级、面向对象的编程语言,与其他编程语言相比,它具有以下几点差别: 1. 语法简单 Python的语法非常简单,易于学习和记忆,像英语一样的语法,加上优雅和简洁的语法风格,使得Python查错和调试变得容易。 示例代码:以下是Python代码和Java代码实现Hello World的对比。 Python代码: print("Hel…

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