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日

相关文章

  • tkinter如何实现label超链接调用浏览器打开网址

    首先需要明确的一点是,tkinter是Python里面一个用于GUI开发的库,它自带了一些组件,如:Button、Label、Entry、Canvas等等。其中的Label是用于显示文本的组件,也可以用于显示图片。 那么我们要如何使用Label组件来实现超链接呢?答案就是使用tkinter自带的hyperlink函数。 具体实现过程如下: 导入tkinter…

    python 2023年6月13日
    00
  • python 如何上传包到pypi

    上传Python包到PyPI是Python开发中非常重要的一步,这意味着开发者可以在全球范围内共享他们的Python包。下面是如何上传Python包到PyPI的完整攻略。 1. 创建项目文件夹 首先,我们需要为Python包创建一个项目文件夹,在项目文件夹中包含以下文件: project_folder ├── README.md ├── LICENSE ├─…

    python 2023年5月14日
    00
  • Python 常用string函数详解

    Python 常用string函数详解 在 Python 中,字符串是一个非常重要的数据类型,经常会用到与字符串相关的操作。本文将介绍一些常用的字符串函数,包括: len():用于获取字符串的长度 split():用于将字符串拆分成多个子串 join():用于将多个子串拼接成一个字符串 replace():用于替换字符串中的某些字符 startswith()…

    python 2023年6月5日
    00
  • Python决策树分类算法学习

    Python决策树分类算法学习 决策树是一种常用的分类算法,它可以将数据集划分为多个类别。在本攻略中,我们将介绍如何使用Python实现决策树分类算法。 步骤1:导入相关库 在使用Python实现决策树分类算法之前,我们需要导入相关的库。在本攻略中,我们将使用NumPy库和Matplotlib库处理数据和可视化结果,使用sklearn库中DecisionTr…

    python 2023年5月14日
    00
  • 一篇文章带你学习python的函数与类

    一、学习python函数的攻略 函数的定义与调用 函数是一个具有特定功能的代码块,使用函数可以简化代码的编写和维护。定义函数可以使用def关键字,可以在函数内部使用return语句返回结果。 例如,我们定义一个求两个数之和的函数add,可以写成如下的形式: def add(num1, num2): result = num1 + num2 return re…

    python 2023年6月5日
    00
  • 基于Python制作一个文本翻译器

    如果要基于Python制作一个文本翻译器,我们可以使用Python的机器翻译库——Googletrans和BaiduTranslate,这两个库可以实现文本的自动翻译。 以下是制作文本翻译器的完整攻略: 步骤1:安装机器翻译库 我们需要下载和安装Python的机器翻译库——Googletrans和BaiduTranslate。其中,Googletrans可以…

    python 2023年5月18日
    00
  • 在Python中分别打印列表中的每一个元素方法

    当我们需要遍历一个列表,打印出每一个元素时,可以使用以下两种方法: 方法一:使用for循环和索引(index) 使用for循环和索引是最基本的遍历列表的方法,我们可以通过循环打印出列表中的每个元素。如下所示的代码: list1 = [‘apple’, ‘banana’, ‘orange’] for i in range(len(list1)): print(…

    python 2023年6月5日
    00
  • Python实现随机生成迷宫并自动寻路

    下面我来详细讲解一下“Python实现随机生成迷宫并自动寻路”的完整攻略。 简介 这个项目旨在使用Python生成随机迷宫并实现自动寻路的功能。具体实现过程如下: 随机生成迷宫 使用启发式搜索算法自动找到迷宫的出口 随机生成迷宫 要生成迷宫,我们可以采用深度优先搜索(DFS)和递归回溯算法。具体步骤如下: 创建一个NxM的矩阵,初始化所有元素为墙 从任意位置…

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