python中的字典及嵌套遍历

下面是对“Python中的字典及嵌套遍历”的完整攻略。

什么是字典

Python中的字典(dict)是一种可变的、无序的键值对(key-value)集合,其中的元素是唯一的,且key必须是不可变的类型,如字符串、数字或元组。

字典的基本操作

创建字典

可以使用花括号 {} 或 dict() 来创建空的字典,也可以使用字典字面量来创建带有初始数据的字典,示例如下:

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

# 创建带有初始数据的字典
person_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

获取和修改字典元素

可以使用方括号 [] 来获取或修改字典中的元素,示例如下:

# 获取字典元素
name = person_dict['name']
print(name)  # 输出: Alice

# 修改字典元素
person_dict['age'] = 30
print(person_dict)  # 输出: {'name': 'Alice', 'age': 30, 'gender': 'female'}

# 添加新元素
person_dict['email'] = 'alice@example.com'
print(person_dict)  # 输出: {'name': 'Alice', 'age': 30, 'gender': 'female', 'email': 'alice@example.com'}

删除字典元素

可以使用 del 语句来删除字典元素,示例如下:

# 删除字典元素
del person_dict['email']
print(person_dict)  # 输出: {'name': 'Alice', 'age': 30, 'gender': 'female'}

遍历字典

可以使用 for 循环来遍历字典的键、值或键值对,示例如下:

# 遍历字典键
for key in person_dict.keys():
    print(key)

# 遍历字典值
for value in person_dict.values():
    print(value)

# 遍历字典键值对
for key, value in person_dict.items():
    print(key, value)

字典的嵌套

字典的值也可以是另一个字典,这种嵌套的结构非常适合用来表示复杂的信息,如:

users_dict = {
    'user1': {'name': 'Alice', 'age': 25},
    'user2': {'name': 'Bob', 'age': 30},
    'user3': {'name': 'Charlie', 'age': 35},
}

字典嵌套遍历

嵌套字典的遍历需要嵌套使用 for 循环,外层循环遍历字典的键,内层循环遍历子字典的键或值,示例如下:

# 遍历外层字典的键和子字典
for user_id, user_dict in users_dict.items():
    print('User ID:', user_id)
    for key, value in user_dict.items():
        print(key, value)

上面的代码会输出以下结果:

User ID: user1
name Alice
age 25
User ID: user2
name Bob
age 30
User ID: user3
name Charlie
age 35

如果内层循环遍历子字典的键,则输出的结果如下:

# 遍历外层字典的键和子字典
for user_id, user_dict in users_dict.items():
    print('User ID:', user_id)
    for key in user_dict.keys():
        print(key, user_dict[key])

上面的代码输出的结果与前面相同。

示例说明

下面给出两个示例,有助于更好地理解字典及嵌套遍历的应用场景。

示例1:统计单词出现次数

假设有一篇英文文章,需要统计其中每个单词出现的次数,可以定义一个空字典 word_count_dict,遍历文章中的每个单词,将单词作为键,出现次数作为值存储在字典中,代码如下:

article = 'This is an example article used to show how to count word occurrence in Python. It can be used for any text file or web page as well.'
word_count_dict = {}
for word in article.split():
    if word in word_count_dict:
        word_count_dict[word] += 1
    else:
        word_count_dict[word] = 1
for key, value in word_count_dict.items():
    print(key, value)

上面的代码会输出文章中所有单词出现的次数,结果如下:

This 1
is 1
an 1
example 1
article 1
used 2
to 1
show 1
how 1
count 1
word 1
occurrence 1
in 1
Python. 1
It 1
can 1
be 1
for 1
any 1
text 1
file 1
or 1
web 1
page 1
as 1
well. 1

示例2:根据多个属性对学生列表进行排序

假设有一个学生列表,其中每个学生是一个字典,包含姓名、年龄和成绩三个属性,需要按照年龄和成绩的优先级对学生列表进行排序,代码如下:

students = [
    {'name': 'Alice', 'age': 20, 'score': 90},
    {'name': 'Bob', 'age': 25, 'score': 85},
    {'name': 'Charlie', 'age': 20, 'score': 95},
    {'name': 'David', 'age': 30, 'score': 80},
    {'name': 'Emma', 'age': 25, 'score': 90},
]
sorted_students = sorted(students, key=lambda x: (x['age'], x['score']), reverse=True)
for student in sorted_students:
    print(student)

上面的代码会输出按照年龄和成绩排序后的学生列表,结果如下:

{'name': 'David', 'age': 30, 'score': 80}
{'name': 'Emma', 'age': 25, 'score': 90}
{'name': 'Bob', 'age': 25, 'score': 85}
{'name': 'Charlie', 'age': 20, 'score': 95}
{'name': 'Alice', 'age': 20, 'score': 90}

上面的代码中,使用 sorted 函数对学生列表进行排序,key 参数指定排序规则,lambda 函数返回一个元组,元组的第一个元素是年龄,第二个元素是成绩,reverse 参数为 True 表示降序排列。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中的字典及嵌套遍历 - Python技术站

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

相关文章

  • Python Matplotlib基本用法详解

    Python Matplotlib基本用法详解 简介 Matplotlib是一个用于创建高质量图表的Python库,它能够以各种硬拷贝格式和跨平台交互式环境生成出版物质量的图表。本攻略将介绍Matplotlib的基本使用方法,包括图表的类型、线条和标注的设置、字体的设置等等。 安装 在使用Matplotlib之前,需要先安装该库,可以使用以下命令进行安装: …

    python 2023年5月19日
    00
  • python Tcp协议发送和接收信息的例子

    下面就是Python TCP协议发送和接收信息的攻略。 什么是TCP协议? TCP(Transmission Control Protocol)是计算机网络中用于可靠传输数据的一种协议。TCP 协议是一种面向连接的协议,在传输数据之前必须要先建立连接、维护连接,再关闭连接。 在TCP协议中,连接的两端分别是客户端和服务端。客户端发起连接请求,服务端回应请求建…

    python 2023年5月19日
    00
  • 详解Python中的正斜杠与反斜杠

    以下是详细讲解“Python中的正斜杠与反斜杠”的完整攻略,包括斜杠和反斜杠的用途和含义、示例说明和注意事项。 正斜(/)与反斜杠(\)的用途和含义 在Python中,正斜杠(/)和反斜杠(\)都是常用的字符。它们在Python中有不同的用途和含义。下面分别介绍正斜杠和反斜杠的用途和含义。 正斜杠(/) 在Python,正斜杠(/)通常用于以下几个方面: 除…

    python 2023年5月14日
    00
  • Python全排列操作实例分析

    下面是详细讲解“Python全排列操作实例分析”的完整攻略。 1. 什么是全排列 全排列是指将一组数按照定的顺序进行排列,使得每个数都在排列中出现且只出现一次。例如,对于数列[1, , 3],它的全排列为[1, 2, 3]、[1, 3, 2]、[2, 1, ]、[2, 3, 1]、[3, 1, 2]、[3, 2, 1]。 2. Python现全排列 Pyth…

    python 2023年5月14日
    00
  • 分享一个常用的Python模拟登陆类

    下面我将会详细讲解如何分享一个常用的Python模拟登陆类,包含以下几个部分。 1. 确定模拟登陆的目标站点 在分享一个常用的Python模拟登陆类之前,我们首先需要明确登陆对象的目标站点。不同的站点,在模拟登陆过程中可能会有不同的实现方式和注意点。 例如,对于一些不需要验证码的网站,登陆过程可能就比较简单,只需要模拟发送一次POST请求,将用户名和密码等信…

    python 2023年6月3日
    00
  • python logging多进程多线程输出到同一个日志文件的实战案例

    首先,需要明确 Python 中 logging 模块的基本使用方法和概念。 1. logging 模块 logging 是 Python 提供的一个标准库,用于进行日志记录。可以将日志记录到文件中或者发送到网络中。使用 logging 模块可以: 控制输出日志的级别(DEBUG, INFO, WARNING, ERROR, CRITICAL); 将不同级别…

    python 2023年5月19日
    00
  • python 动态获取当前运行的类名和函数名的方法

    获取当前运行的类名和函数名是Python中常用的操作,可以方便地用于调试、日志记录等场景。以下是Python动态获取当前运行的类名和函数名的方法的完整攻略: 获取当前运行函数名的方法 有两种方法可以获取当前运行的函数名。 方法一:通过__name__属性获取 Python中每个函数都有一个特殊的属性__name__,保存了函数的名称。可以使用该属性获取当前运…

    python 2023年6月2日
    00
  • Python中paramiko模块的基础操作与排错问题

    简介paramiko是Python编程语言中的一个用于进行SSHv2协议操作的模块。通过paramiko模块,我们可以实现基于SSH协议的远程连接,包括文件传输、命令执行等操作。本文将详细讲解paramiko模块的基础操作以及可能出现的排错问题等。 安装paramiko模块使用pip指令来安装paramiko模块,命令如下: pip install para…

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