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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼爱吃火锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值