当前位置:   article > 正文

Python 列表删除元素的几种方法_python删除列表指定元素

python删除列表指定元素

在Python中,如果你想删除列表中的某个元素,有几种不同的方法可以做到这一点,具体取决于你对要删除元素的了解(例如它的值或位置)。以下是几个常用的方法:

1、列表推导式

# 去除空字符串
my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list = [i for i in my_list if i != ""]
print(my_list)  # 输出: ['xiaoming', 'lily', 'wangwu']

# 去除同一字符的多个值
my_list = ["xiaoming", "", "lily", "", "wangwu", ""]
my_list = [i for i in my_list if i != ""]
print my_list # 输出: ['xiaoming', 'lily', 'wangwu']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

此种方法实际上是创建了一个新的列表

2、filter()函数

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list = list(filter(None, my_list))
print(my_list)  # 输出: ['xiaoming', 'lily', 'wangwu']
  • 1
  • 2
  • 3

filter() 中的None 可以过滤所有的假值(False, None, 0, 和 "")

使用其他值,需要结合lambda使用,如下:

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list = list(filter(lambda x: x != "xiaoming", my_list))  
print(my_list)  # 输出将是 ['', 'lily', '', 'wangwu']
  • 1
  • 2
  • 3

3、remove()函数

将删除列表中找到的第一个匹配元素

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list.remove("xiaoming")
print(my_list)  # 输出将是 ['', 'lily', '', 'wangwu']

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list.remove("")
print my_list   # 输出将是 ['xiaoming', 'lily', '', 'wangwu']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

当列表中含有多个同样需要删除的值,只删除了第一个,这种情况可以与循环结合:

my_list = ["xiaoming", "", "lily", "", "wangwu"]
while "" in my_list:
    my_list.remove("")
print(my_list)  # 输出: ['xiaoming', 'lily', 'wangwu']
  • 1
  • 2
  • 3
  • 4

4、pop()函数

根据给定的索引来删除元素,并返回删除的项。如果没有指定索引,默认删除最后一个元素

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list.pop()
'wangwu'       # 输出
print my_list  # 输出: ['xiaoming', '', 'lily', '']


my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list.pop(0)
'xiaoming'       # 输出
print my_list  # 输出: ['', 'lily', '', 'wangwu']

my_list = ["xiaoming", "", "lily", "", "wangwu"]
my_list.pop(10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range
print my_list  # 输出: ['xiaoming', '', 'lily', '', 'wangwu']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

对于含有多个相同需要删除的值,pop()并不适用,需要知道多个值的索引,比较麻烦

5、del语句

del语句与pop()函数一样,需要使用被删除对象的索引,比较麻烦

my_list = ["xiaoming", "", "lily", "", "wangwu"]
del my_list[0]
print my_list  # 输出: ['', 'lily', '', 'wangwu']
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/748326
推荐阅读
相关标签
  

闽ICP备14008679号