python字典-增、删、改

时间:2022-07-22
本文章向大家介绍python字典-增、删、改,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前面我们简单介绍了Python字典、Python获取字典值以及Python遍历字典今天我们来聊聊python字典的一些基本操作。我们还是以car为例子。

一、增

首先我们来看看如何在字典里面增加一个项目

car = {"brand": "Porsche", "model": "911", "year": 1963}
car["color"] = "red"
print(car)

我们新增了一个属性,指定车的颜色为红色。来看看结果

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}

二、改

其实修改一个项目也是赋值操作,跟上面的增加一个项目本质上是一样的。如果字典里面原本没有这个项目,那么赋值就会新增一个。如果原本字典里面有这个项目,那么再赋值就会覆盖掉原来的项目,也就是修改了。

我们试着把车的颜色修改成蓝色

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
car["color"] = "blue"
print(car)

会得到如下结果

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'blue'}

三、删

如何删掉不需要的条目,有几种方法可以从字典中删除项目

1. pop()方法删除具有指定键名的项:

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
print(car)
car.pop("model")
print(car)

得到的结果如下,可以看到model这个条目已经被删除了

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
{'brand': 'Porsche', 'year': 1963, 'color': 'red'}

2. popitem()方法删除最后的项目(在 3.7 之前的版本中,会随机删除一个项目):

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
print(car)
car.popitem()
print(car)

发现最后一个项目颜色被删掉了

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
{'brand': 'Porsche', 'model': '911', 'year': 1963}

3. del关键字删除具有指定键名的项目:

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
print(car)
del car['year']
print(car)

我们来删掉year这个条目,看看结果

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
{'brand': 'Porsche', 'model': '911', 'color': 'red'}

4. clear()清空字典:

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
print(car)
car.clear()
print(car)

看看结果

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
{}

其实del也可以完全删除字典:

car = {"brand": "Porsche", "model": "911", "year": 1963, "color": "red"}
print(car)
del car
# 这句会报错,因为car已经不存在了
print(car)

结果如下

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}
 NameError: name 'car' is not defined
 

从上面的结果可以看出,clear()只是删除了所有的键和值,字典还是存在的,只是为空了。而del会删掉整个字典,所以整个字典就不存在了。