Python 列表删除元素的几种方法 | 您所在的位置:网站首页 › python删除数组中的D › 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']此种方法实际上是创建了一个新的列表 2、filter()函数 my_list = ["xiaoming", "", "lily", "", "wangwu"] my_list = list(filter(None, my_list)) print(my_list) # 输出: ['xiaoming', 'lily', 'wangwu']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'] 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']当列表中含有多个同样需要删除的值,只删除了第一个,这种情况可以与循环结合: my_list = ["xiaoming", "", "lily", "", "wangwu"] while "" in my_list: my_list.remove("") print(my_list) # 输出: ['xiaoming', 'lily', 'wangwu'] 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 "", line 1, in IndexError: pop index out of range print my_list # 输出: ['xiaoming', '', 'lily', '', 'wangwu']对于含有多个相同需要删除的值,pop()并不适用,需要知道多个值的索引,比较麻烦 5、del语句del语句与pop()函数一样,需要使用被删除对象的索引,比较麻烦 my_list = ["xiaoming", "", "lily", "", "wangwu"] del my_list[0] print my_list # 输出: ['', 'lily', '', 'wangwu'] |
CopyRight 2018-2019 实验室设备网 版权所有 |