python中的字典及嵌套遍历

yizhihongxing

下面是对“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多线程Threading、子线程与守护线程实例详解

    针对题目“Python多线程Threading、子线程与守护线程实例详解”,我将针对每个关键词进行详细讲解。 Python多线程Threading Python是一门支持多线程的语言,使用Python多线程可以增加程序的性能和并发性。Python中提供了多种多线程方式,其中Threading是最常见和最基础的多线程模块。 使用Threading模块可以实现在…

    python 2023年5月18日
    00
  • Python NumPy教程之索引详解

    Python NumPy教程之索引详解 索引 在 NumPy 数组中,索引可以应用于数组的每个维度。这个概念可能比在 Python 中使用列表以及其他序列容器的索引稍微复杂一些,但它在 NumPy 中同样有效。了解如何使用索引对于输入数组进行修改很关键。这里是一些基本的索引示例: 基本索引 创建一个 3 x 4 的数组: import numpy as np…

    python 2023年6月6日
    00
  • Python可视化工具如何实现动态图表

    下面我来详细讲解一下Python可视化工具如何实现动态图表的完整实例教程。 背景 在数据分析和可视化领域,动态图表是一种非常重要的展示方式,能够直观地展示数据随时间、位置等维度的变化趋势,同时吸引读者的注意力。Python作为一种流行的数据分析语言,自然也有许多可视化工具可以用来生成动态图表,如Matplotlib、Plotly、Bokeh等。 准备工作 首…

    python 2023年5月13日
    00
  • Python实现一个发送程序和接收程序

    首先,实现一个发送程序和接收程序需要使用Python中的Socket库。Socket库是Python提供的一个网络通信库,可以通过它实现网络编程,包括创建套接字、发送数据、接收数据等。 以下是实现一个发送程序和接收程序的完整攻略: 1.创建发送程序 1.1 导入socket库 import socket 1.2 创建一个socket对象 s = socket…

    python 2023年5月19日
    00
  • MySQL binlog中的事件类型详解

    MySQL binlog中的事件类型详解 简介 MySQL BINLOG是MySQL数据库的事务日志,用于记录数据库中所有修改数据的SQL语句。它的主要作用是在主从数据库同步时,将主库上的事务日志传输到从库,从而实现数据库的高可用性和异地容灾。备份和数据恢复也依赖于 BINLOG。 BINLOG 是由一系列的事件(Event)构成,每个 Event 记录了M…

    python 2023年6月13日
    00
  • Python WSGI的深入理解

    Python WSGI的深入理解攻略 什么是WSGI? WSGI(Web服务器网关接口)是Python语言定义的一个WEB服务的标准接口,即通过 Python 的“可调用对象”来来处理 HTTP 请求和响应数据的方式,它是一个简单而通用的Web 服务器与Web 应用程序或框架之间的接口。WSGI 规范简化了应用程序和服务器等web组件之间的分离,从而促进了应…

    python 2023年5月13日
    00
  • python字典和JSON格式的转换方式

    接下来我将为您详细讲解Python字典和JSON格式的转换方式的完整攻略。 什么是Python字典和JSON格式 在开始讲解Python字典和JSON格式的转换方式之前,我们先来了解一下它们分别是什么。 Python字典 Python字典是一种无序的键值对(key/value)集合。在字典中,键(key)必须是唯一的,而值(value)则不需要。Python…

    python 2023年5月13日
    00
  • Python中的数学运算操作符使用进阶

    首先我们来讲解一下Python中的数学运算操作符: Python中的数学运算操作符有加、减、乘、除、幂运算等,对应的操作符如下: 符号 操作 + 加法 – 减法 * 乘法 / 除法 // 整除 % 取余 ** 幂运算 下面我们逐一说明它们的使用方法和进阶技巧: 加法 加法操作符用于两个数相加,可以是数字、字符串或者列表等类型。示例如下: a = 3 + 5 …

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