精华内容
下载资源
问答
  • 主要介绍了深入了解Python中pop和remove的使用方法,具有一定借鉴价值,需要的朋友可以参考下
  • Python关于删除list的某个元素,一般有两种方法,pop()和remove()。remove()函数用于移除列表某个值的第一个匹配项。remove()方法语法:list.remove(obj)pop()函数用于移除列表的一个元素(默认最后一个元素)...

    Python关于删除list中的某个元素,一般有两种方法,pop()和remove()。

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

    remove()方法语法:

    list.remove(obj)

    pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

    pop()方法语法:

    list.pop(obj=list[-1])

    如果删除单个元素,使用基本没有什么问题,具体如下。

    1.pop()方法,传递的是待删除元素的index:

    x = ['a', 'b', 'c', 'd']

    x.pop(2)

    print x

    ------------------

    result:

    ['a', 'b', 'd']

    2. remove()传递待删除元素,如果多个元素一样,默认删除第一个:

    x = ['a', 'b', 'a', 'c', 'd']

    x.remove('a')

    print x

    -----------------

    result:

    ['b', 'a', 'c', 'd']

    如果要循环删除符合某个条件的元素,慎用!!

    x = ['a', 'b', 'c', 'd']

    y = ['b', 'c']

    for i in x:

    if i in y:

    x.remove(i)

    print x

    -----------------------

    result:

    ['a', 'c', 'd']

    x = ['a', 'b', 'c', 'd']

    y = ['b', 'c']

    for i in x:

    if i in y:

    idx = x.index(i)

    x.pop(idx)

    print x

    --------------

    result:

    ['a', 'c', 'd']

    我认为出现这种情况的主要原因是,pop和remove方法属于‘破坏性操作‘(ps:原谅我自创的定义),x.remove()后,内存中原来存放x的位置已经释放,又重新申请了内存存放新的x。可以理解为x已经不是原来的x了,而for循环中传递的x还是原来x在内存中的位置,所以在x.remove(i)后,for循环找不到x了,后面的删除即无法完成。为了完成循环删除list元素的问题,我推荐用下面的方法。

    感谢也许小念旧 的提醒,原先的解释是错误的,造成上述现象的原因是因为,Python中for i in list是用迭代器实现,内部隐藏了记录当前迭代器的状态,而remove方法删除了当前元素后,迭代器自动指到下一个元素,原先的list在内存中的位置并未改变。用下面方法可以避免。

    x = ['a', 'b', 'c', 'd']

    y = ['b', 'c']

    x_new = []

    for i in x:

    if i not in y:

    x_new.append(i)

    x = x_new

    print x

    ----------------------

    result:

    ['a', 'd']

    同时, 可可可心一家 提出把for i in x:改成for i in x[:]:也可以实现,这是因为x[:]与x不是同一个list,相当与把x的内存拷贝到一块新的内存,当对x做remove操作的时候,新的内存list并没有受影响。

    总结

    以上就是本文关于深入了解Python中pop和remove的使用方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

    《Python入门之三角函数全解【收藏】》

    《简单了解Python中的几种函数》

    《python正则表达式re之compile函数解析》

    如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

    本文标题: 深入了解Python中pop和remove的使用方法

    本文地址: http://www.cppcns.com/jiaoben/python/217229.html

    展开全文
  • 首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。如下例:>>> a = [0, 2, 2, 3]>>> a.remove(2)>>> a[0, 2, 3]而对于 del 来说,它是根据索引(元素所在位置)来删除的,如下例:>>> a = [3, 2, 2, 1...

    首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。如下例:

    >>> a = [0, 2, 2, 3]

    >>> a.remove(2)

    >>> a

    [0, 2, 3]

    而对于 del 来说,它是根据索引(元素所在位置)来删除的,如下例:

    >>> a = [3, 2, 2, 1]

    >>> del a[1]

    [3, 2, 1]

    第1个元素为a[0] --是以0开始计数的。则a[1]是指第2个元素,即里面的值2.

    del还可以删除整个列表

    del a

    pop返回的是你弹出的那个数值。

    所以使用时要根据你的具体需求选用合适的方法

    >>> a = [4, 3, 5]

    >>> a.pop(1)

    3

    >>> a

    [4, 5]

    另外它们如果出错,出错模式也是不一样的。注意看下面区别:

    >>> a = [4, 5, 6]

    >>> a.remove(7)

    Traceback (most recent call last):

    File "", line 1, in

    ValueError: list.remove(x): x not in list

    >>> del a[7]

    Traceback (most recent call last):

    File "", line 1, in

    IndexError: list assignment index out of range

    >>> a.pop(7)

    Traceback (most recent call last):

    File "", line 1, in

    IndexError: pop index out of range

    展开全文
  • python pop 和remove

    千次阅读 2013-10-18 20:16:19
    python 中pop和remove都是原位操作,不同的是pop是按位进行删除,而remove是按照值来删除,而且remove不是吧含有该值的都删除而是只是删除第一次出现的值,另一个不同的是pop会返回被删除的值,而remove不会返回值
    python 中pop和remove都是原位操作,不同的是pop是按位进行删除,而remove是按照值来删除,而且remove不是吧含有该值的都删除而是只是删除第一次出现的值,另一个不同的是pop会返回被删除的值,而remove不会返回值
    
    展开全文
  • 对于列表可以用pop(),del(),remove(), pop(index) 弹出/删除指定位置的内容,默认参数为-1,即弹出最后一个。返回弹出内容。 使用方式为:arr.pop(index),索引超出会报’IndexError: pop index out of range’。...

    共同点:都是尝试删除列表中的指定某一个内容。
    区别:
    对于列表可以用pop(),del(),remove(),

    • pop(index) 弹出/删除指定位置的内容,默认参数为-1,即弹出最后一个。返回弹出内容。
      使用方式为:arr.pop(index),索引超出会报’IndexError: pop index out of range’。
    • del() 指定列表名与序号无返回值;
      使用方式为:del(arr[2]) ,索引超出会报’IndexError: list assignment index out of range’
    • remove() 删除指定内容无返回值。
      使用方式为:arr.remove(item),item不存在则报’ValueError: list.remove(x): x not in list’
    >>> arr = ['a', 'b', 'c']
    >>> # 正常使用,无返回值输出
    >>> arr.remove('a')
    >>> # 异常,报错
    >>> arr.remove('X')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.remove(x): x not in list
    
    >>> arr = ['a', 'b', 'c']
    >>> # 正常使用,无返回值输出
    >>> del(arr[1])
    >>> # 超出范围,报错
    >>> del(arr[10])
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list assignment index out of range
    
    >>> arr = ['a', 'b', 'c']
    >>> # 正常使用,有返回值输出
    >>> arr.pop(1)
    'b'
    >>> # 超出范围,报错
    >>> arr.pop((10))
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: pop index out of range
    
    
    
    

    对于字典

    • √ 可以使用pop() 弹出指定key,有返回值,无key则报‘AttributeError’。
    • √ 使用del(dic[key]) 删除指定dic的指定key的内容,无key则报‘KeyError: ’。
    • × remove(key) 字典中没有remove方法。
    展开全文
  • Python关于删除list的某个元素,一般有两种方法,pop()和remove()。如果删除单个元素,使用基本没有什么问题,具体如下。1.pop()方法,传递的是待删除元素的index:x = ['a', 'b', 'c', 'd']x.pop(2)print x------...
  • Python关于删除list的某个元素,一般有两种方法,pop()和remove()。 如果删除单个元素,使用基本没有什么问题,具体如下。 1.pop()方法,传递的是待删除元素的index: x = ['a', 'b', 'c', 'd'] x.pop(2) ...
  • 问题:Python中移除列表元素有两种方式,分别是pop和remove,有何区别? 答案: list.pop需要
  • 首先,remove 是删除首个符合条件的元素。并不是删除特定的索引。如下例: &gt;&gt;&gt; a = [0, 2, 2, 3] &gt;&gt;&gt; a.remove(2) &gt;&gt;&gt; a [0, 2, 3] 而...
  • 慎用pythonpopremove

    2019-07-30 10:49:50
    且以上pop数据不稳定,造成上述现象的原因是因为,Python中foriin list是用迭代器实现,内部隐藏了记录当前迭代器的状态,而removepop方法删除了当前元素后,迭代器自动指到下一个元素,原先的list在内存的位置...
  • 1007 Python之List中remove,pop,del区别分析

    万次阅读 2016-11-09 20:46:16
    Python之List中remove,pop,del区别分析目录Python之List中removepopdel区别分析目录 代码块 remove pop del 代码块remove#remove删除首个符合条件的元素,并不删除特定的索引。 **n =[1,2,2,3,4,5] n.remove(3) ...
  • 《1》remove:对元素进行检索删除,返回的是删除后的列表,不返回删除的值(返回None) &gt;&gt;&gt;list1=[1,2,3,6,9] &gt;&gt;&gt;print list1.remove(6) #对列表元素6进行搜索删除,而...
  • 想看详细内容的可转: ...   以下指示几个注意事项,参数到底是索引还是元素?   pop()方法: 按照下标索引删除指定的值 ...s = ['how', 'are', 'you'] s.pop(0) ...remove()方法:按元素删除指定的值...
  • Python之List中remove,pop,del区别分析代码块remove#remove删除首个符合条件的元素,并不删除特定的索引。 **n =[1,2,2,3,4,5] n.remove(3) print (n)** #输出 [1, 2, 2, 4, 5]123456pop#pop按照索引删除字符,...
  • #python中pop()、remove()、del的区别 #pop() 括号里的参数填索引号,按索引号(index)把列表对应的元素删除,并返回该元素的值。 # 括号里参数不填的话默认把列表最后一个元素删除,并返回该元素的值。 #例1 ...
  • pop函数详解今天我为大家讲解python中pop函数的使用。#python#简介——pop()函数是python解释器的内置方法,可作用于列表,字典。pop为“弹出”之意。用法说明——在builtins.py找到pop函数。列表:L.pop([index])...
  • 简单来说,remove按值删除,pop按下标删除,clear为删除全部元素 pycharm测试 #测试remove,pop,clear的应用 L = ['a','b','c','d','e','f'] print(L) #测试remove L.remove('c') print("remove之后结果:",L) #...
  • 今天小编就为大家分享一篇对python中数组的del,remove,pop区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 场景: s = [2, 4, 6, 8] for i in s: if(i%2 == 0): s.remove(i) ...remove() 函数用于移除列表某个值的第一个匹配项,无返回值。 list = [13, 7, 11, 7, 23] list.remove(7) print(list) 输出:...
  • python remove pop

    2014-09-12 14:44:54
    >>> help(list.remove) Help on method_descriptor: remove(...)  L.remove(value) -- remove first occurrence of value.  Raises ValueError if the value is not present.   删除第一个
  • 以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下:http://Novell.Me >>>a=[1,2,3] >>>a.remove(2) >>>a [1,3] >>>a=[1,2,3] >>...
  • 这三种方法都是list的删除方法,其中remove是针对可变列表的元素进行搜索删除,而pop和del是针对可变列表的下标进行搜索删除。具体区别如下: 1. remove remove(item)方法是直接对可变序的元素进行检索删除,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,157
精华内容 24,062
关键字:

python中pop和remove的区别

python 订阅