第6章.字典的使用、遍历、嵌套

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本


提示:


1.

6.2 使用字典

在Python中,字典是一种可变的数据类型,用于存储键值对(key: value),其中键(key)是唯一的,值(value)可以是任意数据类型(字符串、数字、列表、字典等)。字典用大括号{}表示,键和值之间用冒号:分隔,键值对之间用逗号,分隔。

例如:person = {"name": "Alice", "age": 25, "city": "New York"}

6.2.1 访问字典中的值

要访问字典中的值,需通过对应的键来获取,语法为:字典名[键]

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
print(person["name"])  # 输出:Alice
print(person["age"])   # 输出:25

如果访问的键不存在,会抛出KeyError错误。

6.2.2 添加键值对

字典是动态的,可以随时添加新的键值对,语法为:字典名[新键] = 新值

示例:

person = {"name": "Alice", "age": 25}
# 添加新键值对
person["city"] = "New York"
print(person)  # 输出:{"name": "Alice", "age": 25, "city": "New York"}
6.2.3 从创建一个空字典开始

可以先创建一个空字典,再逐步添加键值对。空字典用{}表示。

示例:

person = {}  # 创建空字典
# 逐步添加键值对
person["name"] = "Bob"
person["age"] = 30
person["city"] = "London"
print(person)  # 输出:{"name": "Bob", "age": 30, "city": "London"}
6.2.4 修改字典中的值

要修改字典中的值,通过键找到对应的值并重新赋值即可,语法为:字典名[已有键] = 新值

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
# 修改age的值
person["age"] = 26
print(person["age"])  # 输出:26
6.2.5 删除键值对-del语句

使用del语句可以删除字典中的键值对,语法为:del 字典名[键](删除后无法恢复)。

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
del person["city"]  # 删除"city"对应的键值对
print(person)  # 输出:{"name": "Alice", "age": 25}
6.2.6 由类似的对象组成的字典

当需要存储多个类似对象的信息时,可使用字典的嵌套或多个键对应不同对象的属性。例如,存储多个人的信息:

示例:

# 存储多个人的年龄
ages = {
    "Alice": 25,
    "Bob": 30,
    "Charlie": 35
}
print(ages["Bob"])  # 输出:30
6.2.7 使用-get()方法-来访问值

get()方法用于访问字典中的值,与直接用[键]访问的区别是:如果键不存在,get()会返回默认值(默认是None),而不会抛出错误。

语法:字典名.get(键, 默认值)(默认值可选)。

示例:

person = {"name": "Alice", "age": 25}
# 键存在时,与直接访问效果相同
print(person.get("name"))  # 输出:Alice
# 键不存在时,返回默认值(此处设置为"未知")
print(person.get("city", "未知"))  # 输出:未知

6.3 遍历字典

字典支持遍历操作,可以遍历所有键值对、所有键或所有值。

6.3.1 遍历所有的键值对-items()方法

使用items()方法可返回字典中所有键值对的视图,配合for循环遍历:

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
for key, value in person.items():
    print(f"键:{key},值:{value}")

输出:

键:name,值:Alice
键:age,值:25
键:city,值:New York
6.3.2 遍历字典中的所有键-keys()方法

使用keys()方法可返回字典中所有键的视图,默认情况下,for循环遍历字典时也会遍历所有键:

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
# 方法1:使用keys()
for key in person.keys():
    print(key)
# 方法2:直接遍历字典(默认遍历键)
for key in person:
    print(key)

两种方法输出相同:

name
age
city
6.3.3 按特定的顺序遍历字典中的所有键-sorted()函数

字典在Python 3.7+中是有序的(插入顺序),但如需按特定顺序(如字母顺序)遍历键,可使用sorted()函数:

示例:

person = {"name": "Alice", "age": 25, "city": "New York"}
# 按字母顺序遍历键
for key in sorted(person.keys()):
    print(key)

输出:

age
city
name
6.3.4 遍历字典中的所有值-values()方法-set()函数

使用values()方法可返回字典中所有值的视图,如需去重,可配合set()函数:

示例:

favorite_colors = {
    "Alice": "blue",
    "Bob": "green",
    "Charlie": "blue"
}
# 遍历所有值(包含重复)
for color in favorite_colors.values():
    print(color)
# 去重后遍历
for color in set(favorite_colors.values()):
    print(color)

输出:

# 包含重复的值
blue
green
blue
# 去重后的值
blue
green

6.4 嵌套

嵌套指将字典存储在列表中、将列表存储在字典中,或在字典中嵌套字典,以处理更复杂的数据结构。

6.4.1 列表中嵌套字典

示例:存储多个人的信息

people = [
    {"name": "Alice", "age": 25, "city": "New York"},
    {"name": "Bob", "age": 30, "city": "London"},
    {"name": "Charlie", "age": 35, "city": "Paris"}
]
# 访问列表中第二个字典的"name"值
print(people[1]["name"])  # 输出:Bob
6.4.2 字典中嵌套列表

示例:存储一个人的多个爱好

person = {
    "name": "Alice",
    "age": 25,
    "hobbies": ["reading", "swimming", "traveling"]
}
# 遍历爱好
for hobby in person["hobbies"]:
    print(hobby)

输出:

reading
swimming
traveling
6.4.3 字典中嵌套字典

示例:用字典存储多个人的信息,外层字典的键为用户名

users = {
    "alice": {
        "name": "Alice Smith",
        "age": 25,
        "city": "New York"
    },
    "bob": {
        "name": "Bob Johnson",
        "age": 30,
        "city": "London"
    }
}
# 访问"bob"的年龄
print(users["bob"]["age"])  # 输出:30

以上就是Python字典的核心用法,包括创建、访问、修改、遍历及嵌套等操作,掌握这些可以灵活处理各类键值对数据。


总结

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值