本文目录导读:

在Python中,字典新增键值对有以下几种常用方法:
直接赋值法(最常用)
# 创建一个空字典
my_dict = {}
# 新增键值对
my_dict["name"] = "张三"
my_dict["age"] = 25
my_dict["city"] = "北京"
print(my_dict) # 输出: {'name': '张三', 'age': 25, 'city': '北京'}
update() 方法
# 方法1:传入字典
my_dict = {"name": "张三"}
my_dict.update({"age": 25, "city": "北京"})
print(my_dict) # 输出: {'name': '张三', 'age': 25, 'city': '北京'}
# 方法2:传入键值对
my_dict.update(score=95, grade="A")
print(my_dict) # 输出: {'name': '张三', 'age': 25, 'city': '北京', 'score': 95, 'grade': 'A'}
setdefault() 方法(键不存在时才添加)
my_dict = {"name": "张三"}
# 键不存在,添加新键值对
result = my_dict.setdefault("age", 25)
print(my_dict) # 输出: {'name': '张三', 'age': 25}
print(result) # 输出: 25
# 键已存在,不进行添加
result2 = my_dict.setdefault("name", "李四")
print(my_dict) # 输出: {'name': '张三', 'age': 25}(name未被修改)
print(result2) # 输出: 张三(返回原值)
字典解包(Python 3.5+)
# 合并两个字典
dict1 = {"name": "张三", "age": 25}
dict2 = {"city": "北京", "score": 95}
merged_dict = {**dict1, **dict2}
print(merged_dict) # 输出: {'name': '张三', 'age': 25, 'city': '北京', 'score': 95}
# 也可以在创建时添加
new_dict = {**dict1, "grade": "A"}
print(new_dict) # 输出: {'name': '张三', 'age': 25, 'grade': 'A'}
使用 |= 操作符(Python 3.9+)
my_dict = {"name": "张三"}
my_dict |= {"age": 25, "city": "北京"}
print(my_dict) # 输出: {'name': '张三', 'age': 25, 'city': '北京'}
实际应用案例
# 案例:学生信息管理系统
student = {
"id": "2024001",
"name": "张三"
}
# 1. 添加单个信息
student["age"] = 20
print(f"添加年龄后: {student}")
# 2. 批量添加信息
student.update({
"score": 95,
"grade": "A",
"city": "北京"
})
print(f"批量添加后: {student}")
# 3. 安全添加(检查是否已存在)
if "phone" not in student:
student["phone"] = "13800138000"
print(f"安全添加后: {student}")
# 4. 使用setdefault添加默认值
student.setdefault("email", "default@school.com")
print(f"添加默认邮箱: {student}")
注意事项
- 键的唯一性:如果键已存在,直接赋值会覆盖原值
- 键的要求:字典的键必须是不可变类型(字符串、数字、元组等)
- 性能考虑:直接赋值通常性能最好
# 键覆盖示例
d = {"name": "张三"}
d["name"] = "李四" # 覆盖原值
print(d) # 输出: {'name': '李四'}
选择哪种方法取决于你的具体需求:
- 添加单个键值对:直接赋值
- 批量添加或更新多个:update()
- 仅在新键时添加:setdefault()
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播