![173fabeb4c1c41a0ae3d80d646bcfb15.png](https://img-blog.csdnimg.cn/img_convert/173fabeb4c1c41a0ae3d80d646bcfb15.png)
一、小试牛刀
![9cea4466cbf856822fc5cf6d2e1c7476.png](https://img-blog.csdnimg.cn/img_convert/9cea4466cbf856822fc5cf6d2e1c7476.png)
这道选择题,是每个学python的人必须跨过的一道坑。我敢打赌,第一次做,80%的人都会做错。能作对的20%人里,只有5%能把这个题用简单的语言解析清楚,会是你吗?文末期待你的精彩评论......
二、Python中的remove函数
![bb4f1cae14054b135a3cdc95a03c47a3.png](https://img-blog.csdnimg.cn/img_convert/bb4f1cae14054b135a3cdc95a03c47a3.png)
1、语法
list.remove(obj) # 移除列表中某个值的第一个匹配项
2、注意事项
● 参数
【1】参数obj必传,否则报错:
TypeError: remove() takes exactly one argument (0 given);
【2】参数obj是列表中要移除的对象,不是列表的下角标;
【3】当列表中有多个obj对象时,只删除第一个匹配项;
【4】当列表中没有obj对象时,remove(obj)报错:
ValueError: list.remove(x): x not in list;
【5】remove方法是列表专属
● 返回值
该方法没有返回值(也就是None)但是会移除列表中的某个值的第一个匹配项。
3、实例讲解
● 错误示范:
![720127db643c440c8f767ddc212d9cd2.png](https://img-blog.csdnimg.cn/img_convert/720127db643c440c8f767ddc212d9cd2.png)
remove不传参数报错
![1ec43d36de742c4665523322735a0e67.png](https://img-blog.csdnimg.cn/img_convert/1ec43d36de742c4665523322735a0e67.png)
remove删除的对象在列表中不存在
![5ab197bd58bc6e9018f531f0018640c4.png](https://img-blog.csdnimg.cn/img_convert/5ab197bd58bc6e9018f531f0018640c4.png)
元组没有remove方法
![ad78d7bb997317fb5789143236d18ea8.png](https://img-blog.csdnimg.cn/img_convert/ad78d7bb997317fb5789143236d18ea8.png)
字符串没有remove方法
● 正确示范:
![8c04a7d7a75d82dc7f3dfb2bb9d89355.png](https://img-blog.csdnimg.cn/img_convert/8c04a7d7a75d82dc7f3dfb2bb9d89355.png)
三、Python中的pop、popitem函数
![c0e93f47b695df7f3b720b43649a0235.png](https://img-blog.csdnimg.cn/img_convert/c0e93f47b695df7f3b720b43649a0235.png)
1、区别
![1c7373ee60216e41d8e861b6f5fa347f.png](https://img-blog.csdnimg.cn/img_convert/1c7373ee60216e41d8e861b6f5fa347f.png)
2、pop函数
2.1、列表类型中的pop函数
【1】语法
list.pop([index=-1])
【2】注意事项
● 参数
①list.pop()中的参数为空时,删除的是最后一个元素,等价于list.pop(-1)
②list.pop(index)中的index是list的下角标,不是指list中的元素对象
③当index超过了list的的最大下角标(len(list) - 1)时,报错:
IndexError: pop index out of range
● 返回值
该方法返回从列表中移除的元素的值,如果列表为空或者索引值超出范围会报一个异常。
【3】实例讲解
● 错误示范:
![6f3b653684e637129ff3dd5f02b3c0ca.png](https://img-blog.csdnimg.cn/img_convert/6f3b653684e637129ff3dd5f02b3c0ca.png)
pop参数超过列表下角标
![091c6b5eebb61a4b639e650e8da7a920.png](https://img-blog.csdnimg.cn/img_convert/091c6b5eebb61a4b639e650e8da7a920.png)
pop参数是数字
● 正确示范:
![361e5009fab71a47a4b30b365924e316.png](https://img-blog.csdnimg.cn/img_convert/361e5009fab71a47a4b30b365924e316.png)
![1a3fb69fbe357d52d7ab0be8c08a0a3a.png](https://img-blog.csdnimg.cn/img_convert/1a3fb69fbe357d52d7ab0be8c08a0a3a.png)
注意:print打印字符串时,会自动隐藏引号
2.2 字典类型中的pop函数
【1】语法:
pop(key[,default])
【2】注意事项
● 参数
①字典类型的参数有2个,key和default,其中key是必传参数,default是可传参数;
②key: 要删除的键值;
③default: 如果没有 key,返回 default 值;
④pop()只传一个参数key,当字典中的key不存在时,会报错KeyError:
● 返回值
返回被删除的值。
【3】实例讲解
● 错误示范:
![d194145d467c47e39e89378595c0d806.png](https://img-blog.csdnimg.cn/img_convert/d194145d467c47e39e89378595c0d806.png)
pop参数键值不存在
● 正确示范:
![048bfd33266ce2da38f01e57c5491533.png](https://img-blog.csdnimg.cn/img_convert/048bfd33266ce2da38f01e57c5491533.png)
3、popitem函数
1、语法
popitem()
2、注意事项
● 参数
【1】无
【2】一切传入参数的都会报错
● 返回值
【1】返回并删除字典中的最后一对键和值。
【2】如果字典已经为空,却调用了此方法,就报出 KeyError 异常。
3、实例讲解
● 错误示范:
![8a5144bd9c6bc5e746db44c3496403cf.png](https://img-blog.csdnimg.cn/img_convert/8a5144bd9c6bc5e746db44c3496403cf.png)
popitem没有参数
![f75c7936235c2720f5b6c39a38cc9ff5.png](https://img-blog.csdnimg.cn/img_convert/f75c7936235c2720f5b6c39a38cc9ff5.png)
● 正确示范:
![0a5406f0c795dfbc32ade61582db385e.png](https://img-blog.csdnimg.cn/img_convert/0a5406f0c795dfbc32ade61582db385e.png)
四、Python中的del关键字
![3b6436e95854efc585114e5bb08b6a6a.png](https://img-blog.csdnimg.cn/img_convert/3b6436e95854efc585114e5bb08b6a6a.png)
1、语法
del():删除指定值
2、del删除涉及python的GC(垃圾回收机制)
![ba7904e8c0b5c50ba2979b0e4c868a62.png](https://img-blog.csdnimg.cn/img_convert/ba7904e8c0b5c50ba2979b0e4c868a62.png)
del删除
![f3211b28217d0a20c080cfc132ad9bb6.png](https://img-blog.csdnimg.cn/img_convert/f3211b28217d0a20c080cfc132ad9bb6.png)
●这就是python的GC也就是垃圾回收机制:
【1】由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。
【2】将a和b del之后,1的引用计数仍然为1,所以不会被清除
3、del与remove的区别
![45459c902ad0807979ee932e4a821c76.png](https://img-blog.csdnimg.cn/img_convert/45459c902ad0807979ee932e4a821c76.png)
区别
五、上一茬
>>>《Python基础找茬系列21--python文件处理方法》
六、你真的弄懂了remove吗?
![6bd71c60aad89d256213fb1658cff4f2.png](https://img-blog.csdnimg.cn/img_convert/6bd71c60aad89d256213fb1658cff4f2.png)
我打赌你会做错!