精华内容
下载资源
问答
  • 2021-04-27 03:19:32

    我知道,如果我只想删除python中list t的第一个元素,我可以用以下方法来完成:

    del t[0]

    这是最简单的。然而:

    t = t[1:]

    同样有效。在我正在学习的教科书中说,使用后一种方法通常被认为是不好的做法,因为它本身并不删除列表的标题,但是

    "slice运算符创建一个新的列表,赋值使t引用它,但没有一个引用它。"对作为参数传递的列表有任何影响。"

    为什么这样不好?你能举出一个例子,在这个例子中,这样的方法会显著地改变一个函数吗?事先谢谢。

    如果您特别想做的是从列表中删除第一个元素,那么使用不这样做的方法是不好的做法。这并不意味着t = t[1:]总体上是不好的做法。

    此外,还可以使用t[:] = t[1:]修改原始列表。

    有很多情况下,要么是del t[0]要么是t = t[1:]是罚款的,还有很多情况下,del t[0]是错误的,t = t[1:]是适当的。

    您可以使用t.pop(0),这将返回第一个元素的值并将其从列表中删除。

    @darvark-op并没有要求其他方法从列表中删除项目,而是询问修改原始列表和创建新列表的用例。

    这不是一个好主意有多种原因:

    创建一个新列表只需要做一些不必要的工作来创建新列表和取消分配旧列表。在这两个步骤之间,两次使用内存(因为原始列表和新列表同时处于活动状态,就在分配之前)。

    如果有其他内容引用同一个列表,则不会更新:u = t; del t[0]同时更改u和t。但u = t; t = t[1:]在保持u不变的情况下将新列表分配给t。

    最后,与不透明的t = t[1:]相比,del t[0]更清楚地说明了其去除元素的强度。

    我认为t[:] = t[1:]可以用来改变现有的list对象,但它必须做大约两倍于del t[0]的工作,因为del操作只需要将所有后续的list项下移,而t[1:]必须将后续的项复制到新的list,然后将它们复制回原始的list对象。对吗?

    考虑具有两个实现的函数:

    def remove_first_a(t):

    t = t[1:]

    def remove_first_b(t):

    del t[0]

    现在,请参见正在使用的功能:

    > l = [1, 2, 3]

    > remove_first_a(l)

    > l

    [1, 2, 3]

    > remove_first_b(l)

    > l

    [2, 3]

    第一个实现只重新分配局部变量t,它对作为参数传递的对象没有影响。第二个实现实际上改变了该对象。第一个函数在其当前形状中相当无用。你可以改变它:

    def remove_first_a(t):

    return t[1:]

    > l = [1, 2, 3]

    > x = remove_first_b(l)

    > x

    [2, 3]

    你想要一个还是另一个,更多地取决于实际的用例。有时,您希望原始的EDOCX1[1]保持不变以供以后使用,有时您希望确保在仍然引用它的所有地方更改原始的。

    只是del和slice的一个例子。

    In [28]: u = t = [1, 2,3,4]

    In [30]: id(u) == id(t)   # now the id is same,they point one obj

    Out[30]: True

    如果我们使用del运算符。

    In [31]: del t[0]

    In [32]: t

    Out[32]: [2, 3, 4]

    In [33]: u

    Out[33]: [2, 3, 4]

    但是如果我们使用slice操作符。

    In [35]: t = t[1:]

    In [36]: t

    Out[36]: [2, 3, 4]

    In [37]: id(t) == id(u)

    Out[37]: False

    In [39]: u

    Out[39]: [1, 2, 3, 4]

    我们发现T和U现在指向不同的对象,所以我们处理列表T,列表U不变。

    更多相关内容
  • python怎么删除列表第一个元素

    千次阅读 2021-01-09 11:34:07
    我们以一个字符串为元素类型的 list 为例,进行列表元素删除: >>> l = ['no surfing', 'flippers'] 法:remove(val) >>> l.remove('no surfing') >>> l ['flippers'] (1...

    我们以一个字符串为元素类型的 list 为例,进行列表元素的删除:

    >>> l = ['no surfing', 'flippers']
    

    法一:remove(val)

     
    >>> l.remove('no surfing')
    
    >>> l
    
    ['flippers']
    
     
    

    (1)remove() 的参数是具体的元素值,而不是索引,

    (2)如果知道索引,如何使用 remove 删除该索引上的元素值,

    >>> l.remove(l[1])
    

    这样做是很大的风险的,因为 list 允许重复,remove() 删除的列表中第一个和参数值相等的元素

    法二:pop(0)

    (1)pop() 接收的是索引,无参的情况下删除的是最后一个元素(典型的栈的特性)

    (2)pop() 存在返回值,返回的是删除的元素值

     
    l.pop() <==> l.pop(-1)
    
     
    

    (3)list 的 append()(添加到尾部),pop()(从尾部弹出),成功地将 list 变成了 stack

    法三:del(l[0])

    >>> del(l[0])
    
     
    
    展开全文
  • 结果为:[9, 5, 6, 6, 7, 8, 9, 6, 0],只删除第一个为6的元素。 如果采用for循环遍历各元素: for x in l: if x == 6: l.remove(x) 结果为[9, 5, 7, 8, 9, 6, 0],后面的6没有删除。主要因为remove改变了list...
  • Is there a way to slice only the first and last item in a list?... If this is my list:>>> some_list['1', 'B', '3', 'D', '5', 'F']I want to do this (obviously [0,-1] is not valid syntax):>>> f...

    1586010002-jmsa.png

    Is there a way to slice only the first and last item in a list?

    For example; If this is my list:

    >>> some_list

    ['1', 'B', '3', 'D', '5', 'F']

    I want to do this (obviously [0,-1] is not valid syntax):

    >>> first_item, last_item = some_list[0,-1]

    >>> print first_item

    '1'

    >>> print last_item

    'F'

    Some things I have tried:

    In [3]: some_list[::-1]

    Out[3]: ['F', '5', 'D', '3', 'B', '1']

    In [4]: some_list[-1:1:-1]

    Out[4]: ['F', '5', 'D', '3']

    In [5]: some_list[0:-1:-1]

    Out[5]: []

    ...

    解决方案

    One way:

    some_list[::len(some_list)-1]

    A better way (Doesn't use slicing, but is easier to read):

    [some_list[0], some_list[-1]]

    展开全文
  • python 删除list中的第一个元素

    万次阅读 2021-01-10 08:54:12
    1.默认删除最后一个元素.pop()中也可以传入参数,为list的索引 2.pop() 接收的是索引,无参的情况下删除的是最后一个元素(典型的栈的特性) 3.pop() 存在返回值,返回的是删除元素值 list=[11,12,13,14,15] ...

    目录

    1.python 删除list中元素三种方式(一般)

    1. pop()

    2.del

    3.remove

    2.嵌套数组删除存在的问题


    1.python 删除list中元素三种方式(一般)

    1. pop()

    1.默认删除最后一个元素.pop()中也可以传入参数,为list的索引
    2.pop() 接收的是索引,无参的情况下删除的是最后一个元素(典型的栈的特性)
    3.pop() 存在返回值,返回的是删除的元素值

    list=[11,12,13,14,15]
    
    list=[11,12,13,14,15]
    list.pop()
    print(list.pop())
    print(list)
    
    #output
    14
    [11, 12, 13]
    

    2.del

    list=[11,12,13,14,15]
    del(list[1])
    print(list)
    
    #output
    [11, 13, 14, 15]
    

    3.remove

    remove() 的参数是具体的元素值,而不是索引,

    list=[11,12,13,14,15]
    list.remove(11)
    print(list)
    
    #output
    [12, 13, 14, 15]
    

    2.嵌套数组删除存在的问题

    存在于嵌套list中, 如果list1中的一个元素发生改变,list0也会变化.
    目的:list0生成后不随list1的改变而改变

    if(len(first_images)==12): #获取到了1分钟内的12个图像
    
             grey_images.append(to_grey(first_images))                  
             first_images.clear()
    
             if(len(grey_images)==5): #获得了5分钟的图片
                images.append(grey_images)
    			print("image1前的shape:")
    			arr1 = np.array(images)
    			print(arr1.shape)
    
                del(grey_images[0])
    
    			print("image1之后的shape:")
    			arr1 = np.array(images)
    			print(arr1.shape)
    			                        
    

    结果:image1前的shape和image1之后的shape并不一样.删除元素后比之前的少了一个元素.因为list存放的是索引,并不是实际的值

    Solution:

    思路:将索引改为实际的值,然后再删除
    具体步骤:
    1.创建一个新的数组
    2.对原数组的元素依次放入新数组中.
    3.对原数组进行元素删除.
    这样新数组的值并不会发生改变.因为新数组的元素不再是引用,而是实际的值

    if(len(first_images)==12): #获取到了1分钟内的12个图像
    
    	grey_images.append(to_grey(first_images))
    	first_images.clear()
    	
    	if(len(grey_images)==5): #获得了5分钟的图片
    		    grey_images_val=[]
    		    for t in range(5):
    		        grey_images_val.append(grey_images[i])
    		 
    		    images.append(grey_images_val)
    		    print("grey的length:")
    		    print(len(grey_images))
    		
    		    print("image1前的shape:")
    		    arr1 = np.array(images)
    		    print(arr1.shape)
    		
    		    grey_images.pop()
    		    print("image1之后的shape:")
    		    arr1 = np.array(images)
    		    print(arr1.shape)
    

    结果:image1前的shape和image1之后的shape此时相同

     

     

    展开全文
  • 在列表字典中删除个列表的最后元素有什么更加pythonic或有效的方法?例如,拿这个:listDict = {'tom': [-2,10,2,-8], 'sam': [-9,-10,-10,-7]}并将其转化为:listDict = {'tom': [-2,10,2], 'sam': [-9,-10,-...
  • python 删除list中的第一个元素

    万次阅读 2019-12-08 13:01:54
    1.默认删除最后一个元素.pop()中也可以传入参数,为list的索引 2.pop() 接收的是索引,无参的情况下删除的是最后一个元素(典型的栈的特性) 3.pop() 存在返回值,返回的是删除元素值 list=[1...
  • 如何取得list中最后一个元素使用PYTHON最简单了arr = [1,2,3,4]直接使用arr[-1]就可以得到list最后一个元素怎样获取list集合中的最后一个对象中的值指令:list.get(list.size()-1);C语言中List的含义:链表是种...
  • lpop 获取list的第一个元素,并删除 lpop 列表名称 rpop rpop 列表名称
  • ,问题 问题出现在使用递归的时候, 想要删除列表中某个元素,然后作为参数传入函数,但是又不想改变列表本身 ...新建一个列表,remove后,再传入函数。 多了两行代码,而且多命名个变量,太别扭了。 2.列表推
  • python实现删除列表中某个元素的3种方法python中关于删除list中的某个元素,一般有三种方法:remove、pop、del:1.remove: 删除单个元素删除符合条件的元素,按值删除举例说明:>>> str=[1,2,3,4,5,2,6]>>> str....
  • 在这实例中,我们将会演示如何删除在 Java 中定义的 List 的 1 个元素。 我们将会针对这问题使用 List 接口的 2 实现ArrayList和LinkedList来进行演示。 创建一个 List 首先,我们来创建一个我们需要的...
  • python中关于删除list中的某个元素,一般有三种方法:remove、pop、del:1.remove: 删除单个元素删除符合条件的元素,按值删除举例说明:>>> str=[1,2,3,4,5,2,6]>>> str.remove(2)>>> str[1, 3, 4, 5, 2, 6]2....
  • js数组删除第一个元素

    千次阅读 2019-01-29 16:50:48
    js数组删除第一个元素 &lt;script&gt; var a = ["乔布斯", "盖茨", "扎克伯格", "apple", "Ms", "facebook"]; document.write(a + "...
  • C# 删除数组第一个元素

    千次阅读 2020-12-23 17:17:37
    删除数组第一个元素 using (var reader = new StreamReader(csvPath, Encoding.Default)) { var fooCsv = new FooCsv(); fooCsv.Tags = reader.ReadLine().Split(',').Where((val, idx) => idx != 0).ToArray()...
  • 在Python中获取列表的最后一个元素

    万次阅读 2021-02-10 01:01:34
    要获得最后一个元素,而不修改列表,和假设您知道列表中有最后一个元素(即它是非空的)将 -1 传递给下标符号:>>> a_list = ['zero', 'one', 'two', 'three']>>> a_list[-1]'three'解释索引和切片...
  • JS如何删除数组第一个元素

    千次阅读 2021-06-04 09:52:02
    return arr.slice(1); } //利用filter function curtail(arr) { return arr.filter(function(v,i) { return i!==0; }); } //利用push.apply+shift function curtail(arr) { var newArr=[]; [].push.apply...
  • 列表 a=[1,2,3,4] a.pop()#删除最后位 print(a) 输出: [1, 2, 3] 二维列表 a=[[1,2],[2,3],[1,2],[1,2]...那么,如果要删除位的元素呢? a=[1,2,3,4] del a[-2]#删除倒数二位 print(a) 输出: [1, 2, 4
  • Let's say I have two lists, l1 and l2 . 假设我有两个列表l1和l2 。 I want to perform l1 - l2 , which returns a
  • vecter容器删除第一个元素

    万次阅读 2019-05-08 20:16:53
    如何删除vecter容器中第一个元素: #include <iostream> #include <vector> using namespace std; int main() { vector<int> v; //初始化 v for (int i = 0; i < 10; i++) { v.push_...
  • Python | 列表如何去掉最后一个元素

    千次阅读 2021-09-16 19:42:27
    在Python3中列表数据类型的内置方法里有三种方法可以删除列表的最后一个元素1、pop方法 list = [1,2,3,4] list.pop() print(list) 结果:[1, 2, 3] 2、del方法 list = [1,2,3,4] del(list[-1]) ...
  • (前言: 在项目中,在统计在线用户量及其行为方式的时候,想在项目如“/bob/recode/online”,结果发现...即:”/bob/report/online“.)再回到题目上来,删除list中的最后一个元素,看下面:可以使用lists:sublist(L,...
  • 1.题目: 2.代码: 3.结果:
  • 1.Python3中对列表删除的三种方式 2.列表的正序遍历与倒序遍历过程的分析 3.删除列表中多相同元素的方法
  • 1. shift() 方法用于把数组的第一个元素从其中删除。 2. 返回值: 被删除元素(即数组原来的第一个元素的值)。 3. 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。 4. 请注意,该方法不...
  • 从HashMap获取第一个和最后一个元素

    万次阅读 2021-02-28 06:12:06
    6 答案:答案 0 :(得分:3)首先,地图不是有序的,所以你不会真正拥有第一个和最后一个元素。但是,如果你想获得它的第一个和最后一个元素,你可以只获取值并将其转换为数组。这不是很漂亮,但它会起作用。Map ...
  • Python基础--list列表删除元素

    千次阅读 2020-12-03 21:55:11
    列表删除元素主要分为以下 3 种场景:根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法;根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法;将列表中所有元素全部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 963,110
精华内容 385,244
关键字:

列表删除第一个元素