博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中列表元素删除
阅读量:4078 次
发布时间:2019-05-25

本文共 1898 字,大约阅读时间需要 6 分钟。

Python中列表元素删除

1.使用del命令删除列表中的指定位置上的元素

l = [1, 2, 3, 4, 5]del l[2] #将下标为2的元素删除print(l)#[1, 2, 4, 5]del l #将列表l删除 此时再打印输出就会报错 因为这个列表没有定义print(l)#NameError: name 'l' is not defined

[1, 2, 4, 5]Traceback (most recent call last):  File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 54, in 
print(l)NameError: name 'l' is not defined

当要用del命令循环删除元素时,应当倒序删除 

import randomdef deleteoddnumber(x):    for i in range(len(x) - 1, 0, -1): # 循环倒序        if x[i] % 2 != 0:            del x[i]    return xx = []while True:    if len(x) == 20:        break    n = random.randint(1, 100)    if n not in x:        x.append(n)print('删除奇数元素前\n', x) print('删除奇数元素后\n', deleteoddnumber(x))
删除奇数元素前 [24, 19, 71, 2, 83, 1, 6, 45, 29, 38, 78, 74, 46, 14, 93, 48, 100, 31, 25, 30]删除奇数元素后 [24, 2, 6, 38, 78, 74, 46, 14, 48, 100, 30]

若是正序删除 则会出现下标越界报错

import randomdef deleteoddnumber(x):    for i in range(len(x)):# 循环正序        if x[i] % 2 != 0:            del (x[i])    return xx = []while True:    if len(x) == 20:        break    n = random.randint(1, 100)    if n not in x:        x.append(n)print('删除奇数元素前\n', x)print('删除奇数元素后\n', deleteoddnumber(x))
删除奇数元素前Traceback (most recent call last): [84, 93, 16, 40, 12, 98, 67, 97, 83, 39, 26, 25, 99, 19, 17, 62, 68, 43, 4, 47]  File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 15, in 
print('删除奇数元素后\n', deleteoddnumber(x)) File "F:/pythonDemo/python代码/生成随机数并将奇数删除.py", line 4, in deleteoddnumber if x[i] % 2 != 0:IndexError: list index out of range

会出现列表下标越界错误,

 2.使用列表的pop()方法删除并返回指定位置上的元素(默认为最后一个即pop(len(list)-1),删除下标为index的元素可表示为pop(index))

下标index不可以超过列表范围,否则抛出异常。

l = [1, 2, 3, 4, 5]print(l.pop(len(l)-1)) # 和l.pop()效果相同 print(l.pop(3))

54
3.使用列表对象的remove()方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常。

l = [1, 2, 3, 3, 4, 5]l.remove(1) #删除元素值为1的元素l.remove(3) #删除元素值为3的元素 print(l)
[2, 3, 4, 5]
值得注意的是,删除的时候remove方法总是将第一个找到的元素进行删除 而没有把所有相同的元素值都给删除。

转载地址:http://whsni.baihongyu.com/

你可能感兴趣的文章
欠驱动系统的控制是非线性控制理论中最具挑战性的方向之一
查看>>
这篇学位论文对欠驱动系统说得不错《欠驱动非线性系统控制问题的研究》
查看>>
我感觉论文写不了创新性的写个综述也可以啊,就总结概括前人的。
查看>>
原来惯性飞轮最开始是用在卫星姿态的调整里面的
查看>>
滑模控制我看在欠驱动系统的控制里面也出现得挺多
查看>>
这样的也可以发.....
查看>>
滑模控制基本概念
查看>>
我感觉真正的关键是你做出东西,做出成果,在这个互联网时代不会埋没你,
查看>>
无名的ADRC的具体方案
查看>>
我的F330 ACfly动力配置
查看>>
无名的飞控默认是用的PID,没用ADRC,可以改变宏定义切换。而且只在角速度环用ADRC。
查看>>
我发现《四轴飞行器DIY-基于STM32微控制器》,还有crazypony,还有无名,匿名这类没有用操作系统的都是靠定时器中断来弄的。
查看>>
弄清楚这里所说的解耦是什么意思。
查看>>
我准备把ACfly和T265接上
查看>>
T265源码下载及案例实验(这个人运行成功了realsense里的pose例程,获得位置数据!)
查看>>
网上搜到的树莓派使用串口(uart或者USB)都是Python来用的,我感觉我得换成x86系统来弄或许好些。
查看>>
Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,似乎校验更多比串口更可靠?
查看>>
移植mavlink到stm32详细教程,后面附快速移植方法
查看>>
感觉mavlink对于目前的我而言还是麻烦了点,干脆用串口吧(现在回看这可能是错误的想法)
查看>>
树莓派利用串口进行通信(这个是用c写的树莓派的串口)
查看>>