参考:

3 Ways to remove an element from a List in Python - howtouselinux

python中remove函数的用法是什么?

python中remove函数的用法:

描述

remove() 函数用于移除列表中某个值的第一个匹配项。

语法

remove()方法语法:

list.remove(obj)

参数

obj -- 列表中要移除的对象。

返回值

该方法没有返回值但是会移除列表中的某个值的第一个匹配项。

实例

以下实例展示了 remove()函数的使用方法:

#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.remove('xyz');
print "List : ", aList;
aList.remove('abc');
print "List : ", aList;

以上实例输出结果如下

:List : [123, 'zara', 'abc', 'xyz']
List : [123, 'zara', 'xyz']

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]
 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
 # 值错误: 需要删除的值不在列表中



4. 一次只删一个元素
        上面的案例中,列表 [1, 2] 看似在列表 [1, 2, 3] 中存在,实际上, remove() 函数判断元素是否在列表中存在的标准是:匹配列表中的「单个元素」,而不是整个列表。

         remove() 函数会遍历列表中的每一个元素,查看是否有元素与之匹配,匹配到相同的元素才会执行删除,这也就意味着 remove() 函数一次只能删除一个元素。

        自己删自己也不行,因为自己并不在自己的元素中