remove函数使用详解
1. 基本使用
remove() 函数可以删除列表中的指定元素
语法
list.remove( element )
参数
- element:任意数据类型(数字、字符串、列表等)
2. 删除普通类型元素
删除一个列表中「存在」的数字或字符串
list1 = ['zhangsan', 'lisi', 1, 2] list1.remove(1) # 删除数字 print(list1) list1.remove('zhangsan') # 删除字符串 print(list1)
输出:
['zhangsan', 'lisi', 2] ['lisi', 2]
如果列表中「不存在」想要删除的元素,则会报错
list1 = [1, 2, 3] list1.remove(4)
输出:
Traceback (most recent call last): File "E:/data/PrCharm/test1/55.py", line 2, in <module> list1.remove(4) ValueError: list.remove(x): x not in list # 值错误: 需要删除的值不在列表中
3. 删除对象类型元素
删除一个列表中「存在」的对象元素(列表、元祖等)
list1 = [1, 2, [3, 4], (5, 6)] a = [3, 4] b = (5, 6) list1.remove(a) # 删除列表类型 print(list1) list1.remove(b) # 删除元祖类型 print(list1)
输出:
[1, 2, (5, 6)] [1, 2]
需要注意的是:remove删除对象类型的前提是,列表中的某个「元素」是对象类型,以下这种方式会报错
list1 = [1, 2, 3] list1.remove([1,2])
输出:
Traceback (most recent call last): File "E:/data/PrCharm/test1/55.py", line 2, in <module> list1.remove([1,2]) ValueError: list.remove(x): x not in list # 值错误: 需要删除的值不在列表中
. 一次只删一个元素
上面的案例中,列表 [1, 2] 看似在列表 [1, 2, 3] 中存在,实际上, remove() 函数判断元素是否在列表中存在的标准是:匹配列表中的「单个元素」,而不是整个列表。
remove() 函数会遍历列表中的每一个元素,查看是否有元素与之匹配,匹配到相同的元素才会执行删除,这也就意味着 remove() 函数一次只能删除一个元素。
自己删自己也不行,因为自己并不在自己的元素中
list1 = [1, 2, 3, 4, 5] print('我自己在我自己里面吗?', list1 in list1) list1.remove(list1)
输出:
Traceback (most recent call last): File "E:/data/PrCharm/test1/55.py", line 3, in <module> list1.remove(list1) ValueError: list.remove(x): x not in list 我自己在我自己里面吗? False