当前位置: 首页 > article >正文

python之字典(dict)

在 Python 项目中,字典(dict)是一种非常常用的数据结构。字典是一种键值对(key-value pair)的集合,具有快速查找、插入和删除的特点。

1. 创建字典

使用大括号 {}
# 创建一个空字典
my_dict = {}

# 创建一个带有初始值的字典
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
使用 dict() 构造函数
# 使用关键字参数创建字典
my_dict = dict(name="Alice", age=25, city="New York")

# 使用键值对的列表创建字典
my_dict = dict([("name", "Alice"), ("age", 25), ("city", "New York")])

2. 访问和修改字典

访问字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 通过键访问值
name = my_dict["name"]
print(name)  # 输出 "Alice"
修改字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 修改值
my_dict["age"] = 26
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}

3. 添加和删除键值对

添加键值对
my_dict = {"name": "Alice", "age": 25}

# 添加新的键值对
my_dict["city"] = "New York"
print(my_dict)  # 输出 {'name': 'Alice', 'age': 25, 'city': 'New York'}
删除键值对
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 使用 del 关键字删除键值对
del my_dict["age"]
print(my_dict)  # 输出 {'name': 'Alice', 'city': 'New York'}

# 使用 pop() 方法删除键值对并返回值
city = my_dict.pop("city")
print(city)  # 输出 "New York"
print(my_dict)  # 输出 {'name': 'Alice'}

4. 字典方法

get() 方法
my_dict = {"name": "Alice", "age": 25}

# 使用 get() 方法访问值,如果键不存在则返回默认值
age = my_dict.get("age", 0)
print(age)  # 输出 25

# 键不存在时返回默认值
city = my_dict.get("city", "Unknown")
print(city)  # 输出 "Unknown"
keys()values()items() 方法
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 获取所有键
keys = my_dict.keys()
print(keys)  # 输出 dict_keys(['name', 'age', 'city'])

# 获取所有值
values = my_dict.values()
print(values)  # 输出 dict_values(['Alice', 25, 'New York'])

# 获取所有键值对
items = my_dict.items()
print(items)  # 输出 dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
update() 方法
my_dict = {"name": "Alice", "age": 25}

# 使用 update() 方法更新字典
my_dict.update({"age": 26, "city": "New York"})
print(my_dict)  # 输出 {'name': 'Alice', 'age': 26, 'city': 'New York'}

5. 字典遍历

遍历键
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

for key in my_dict:
    print(key, my_dict[key])
# 输出:
# name Alice
# age 25
# city New York
遍历值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

for value in my_dict.values():
    print(value)
# 输出:
# Alice
# 25
# New York
遍历键值对
my
items()

items() 方法返回一个包含字典所有键值对的视图对象,每个键值对以元组的形式存在。你可以使用 items() 方法来遍历字典中的所有键值对。下面是一些具体的示例,展示了如何使用 items() 方法来遍历字典。

示例 1:基本用法
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 使用 items() 方法遍历字典的键值对
for key, value in my_dict.items():
    print(f"Key: {key}, Value: {value}")
# 输出:
# Key: name, Value: Alice
# Key: age, Value: 25
# Key: city, Value: New York
示例 2:在函数中使用
def print_dict_items(d):
    for key, value in d.items():
        print(f"Key: {key}, Value: {value}")

my_dict = {"name": "Alice", "age": 25, "city": "New York"}
print_dict_items(my_dict)
# 输出:
# Key: name, Value: Alice
# Key: age, Value: 25
# Key: city, Value: New York
示例 3:条件过滤
my_dict = {"name": "Alice", "age": 25, "city": "New York", "country": "USA"}

# 只打印值为字符串类型的键值对
for key, value in my_dict.items():
    if isinstance(value, str):
        print(f"Key: {key}, Value: {value}")
# 输出:
# Key: name, Value: Alice
# Key: city, Value: New York
# Key: country, Value: USA
示例 4:修改字典中的值
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

# 将所有字符串类型的值转换为大写
for key, value in my_dict.items():
    if isinstance(value, str):
        my_dict[key] = value.upper()

print(my_dict)
# 输出:
# {'name': 'ALICE', 'age': 25, 'city': 'NEW YORK'}
示例 5:嵌套字典的遍历
nested_dict = {
    "person1": {"name": "Alice", "age": 25},
    "person2": {"name": "Bob", "age": 30}
}

# 遍历嵌套字典
for person, details in nested_dict.items():
    print(f"{person}:")
    for key, value in details.items():
        print(f"  {key}: {value}")
# 输出:
# person1:
#   name: Alice
#   age: 25
# person2:
#   name: Bob
#   age: 30
示例 6:统计字典中的值
my_dict = {"apple": 3, "banana": 2, "orange": 5}

# 计算所有值的总和
total = sum(value for key, value in my_dict.items())
print(f"Total: {total}")
# 输出:
# Total: 10

http://www.kler.cn/a/280811.html

相关文章:

  • Vue表单元素绑定:v-model 指令
  • <Rust>egui学习之小部件(五):如何在窗口中添加图像部件?
  • 高空抛物目标检测
  • MATLAB绘图基础2:MATLAB数据结构
  • LeetCode 热题100-39 对称二叉树
  • Debian 安装 OpenSSH 服务器
  • DB-GPT开源项目文档入门
  • 界面交互体验测试的工具
  • python 使用宝塔面板在云服务器上搭建 flask
  • 【附解决方法】由于找不到vcruntime140_1.dll 无法继续执行代码如何处理
  • 2024.8.27(Dokerfile的应用、私有仓库)
  • 软件测试 | 测试用例
  • 一步迅速了解Spring框架的几个特点
  • 一步步理解 Python 异步生成器(AsyncGenerator)——从入门到实践
  • 设计模式26-解析器模式
  • 精彩管道不会梦到深沉蓝调
  • Acrobat Pro DC 2024 for mac/Win:跨平台PDF编辑与管理的巅峰之作
  • java Boss直聘爬虫数据分析
  • 线性二次调节器(LQR)和模型预测控制(MPC)算法对比介绍
  • JimuReport 积木报表 v1.8.0 版本发布,开源可视化报表