Python字典增删操作详解:赋值、setdefault、pop、del与clear
本文详解Python字典的增删操作。增加元素可通过直接赋值或setdefault方法,后者在键存在时不覆盖。删除操作包括pop(指定键删除并返回值)、popitem(移除并返回随机键值对,Python3.7+通常移除最后一个)、del(指定键删除)以及clear(清空所有元素)。文章结合代码示例说明各方法的具体用法与区别。
Python字典增加元素的方法
在Python中,向字典添加元素主要有两种方式:直接赋值和使用setdefault方法。
最直接的方式是通过键名进行赋值,语法为变量名[key] = value。如果该key已存在,则覆盖原有值;如果不存在,则添加新键值对。
user_info = {"name":"冯提莫","like":"喵喵喵"}
user_info["height"] = 1.51 # 添加一个元素
print(user_info)
#{'name': '冯提莫', 'like': '喵喵喵', 'height': 1.51
user_info["name"] = "学猫叫"
print(user_info)
#{'name': '学猫叫', 'like': '喵喵喵', 'height': 1.51} 将原有的name = 冯提莫覆盖。
另一种方法是使用setdefault(key, default)。该方法用于指定key和对应的value。其特点是:如果key已存在,则不覆盖原有值,并返回现有值;如果key不存在,则添加该键值对。
需要注意的是,调用setdefault方法时,参数之间需要使用逗号分隔。例如:user_info.setdefault("height", 1.51)。
user_info = {"name":"冯提莫","like":"喵喵喵"}
user_info.setdefault("height",1.51)
print(user_info) #{'name': '冯提莫', 'like': '喵喵喵', 'height': 1.51}
user_info.setdefault("name","学猫叫")
print(user_info) #{'name': '冯提莫', 'like': '喵喵喵', 'height': 1.51} name名字不覆盖。
Python字典删除元素的方法
删除字典元素时,pop和del是最常用的两种方法,但它们的机制有所不同。pop()方法默认删除并返回最后一个插入的键值对(Python3.7+),也可以指定具体的key进行删除。而del语句则需要明确指定要删除的key。
使用pop()方法时,需要在括号内指定要删除的元素的key。该方法会删除指定的键值对,并返回对应的value。
pop()方法的行为取决于是否指定参数。如果不指定key,它将删除并返回字典中最后一个插入的键值对(在Python3.7及以后版本中,字典保持插入顺序);如果指定了key,则删除该特定键值对。
# pop
info = {"name":"压力山大","age":26,"height":1.78}
info.pop("name") # 删除info中的name
print(info)
#{'age': 26, 'height': 1.78}
popitem()方法用于随机弹出一个键值元组。由于字典在Python3.7之前是无序的,因此删除的元素看似随机。但在Python3.7+中,字典保持插入顺序,popitem()实际上会移除并返回最后一个插入的键值对。
# popitem
info = {"name":"压力山大","age":26,"height":1.78}
info.popitem() # 删除最后一个key和对应的value
print(info)
# {'name': '压力山大', 'age': 26}
clear()方法用于清空字典中的所有元素,使字典变为空字典{}。
# clear
info = {"name":"压力山大","age":26,"height":1.78}
info.clear() # 清空字典
print(info)
# {}
del语句用于从字典中删除指定的key。使用时必须明确给出要删除的key,语法为del variable[key]。
# del
info = {"name":"压力山大","age":26,"height":1.78}
del info["name"] # 从内存中删除变量
print(info)
# {'age': 26, 'height': 1.78}
以上就是Python中字典增加和删除操作的详细介绍。如需了解更多相关内容,可参考本站其他文章或继续浏览后续内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













