Python中remove,pop,del的区别
2024-08-29 10:36:10
先上题:写出最终打印的结果
a = [1, 2, 3, 4]
for x in a:
a.remove(x)
print(a) print("=" * 20) b = [1, 2, 3, 4]
for i in b:
b.pop()
print(b)
print("=" * 20) c = [1, 2, 3, 4]
for i in range(len(c)):
del c[0] print(c)
一开始一看应该都是[ ]吧??
在机器上跑了一下:
[2, 4]
====================
[1, 2]
====================
[ ]
得到的结果如上,是不是很吃惊!!
首先要弄明白remove,pop,del三者的区别
1.用remove("")方法删除指定元素,没有该元素时报错.
>>> number = [1,3,2,3,4]
>>> number.remove(3)
>>> print(number)
[1, 2, 3, 4]
>>> number.remove(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
2.利用del[索引数] 函数删除指定索引数的元素
>>> number = ['a','c','d']
>>> del number[1] #删除指定索引数的元素
>>> print(number)
['a', 'd']
3.利用pop()方法弹出元素,当()内无索引数时默认弹出最后一个元素
>>> number = [1,2,30,0]
>>> number.pop() #无索引弹出最后一个元素
0
>>> number.pop(1) #弹出索引为1的元素
2
>>> print(number)
[1, 30]
以上是三者的用法,需要注意的是:del是python语句,而不是列表方法,无法通过list来调用
对列表a看一下循环的索引的变化
a = [1, 2, 3, 4]
for index, x in enumerate(a):
print("索引是{},去删除的值是{},列表的长度是{}".format(index, x, len(a)))
a.remove(x)
print("=" * 20)
print(a) 结果如下: 索引是0,去删除的值是1,列表的长度是4
====================
索引是1,去删除的值是3,列表的长度是3
====================
[2, 4]
列表的长度在变化,索引值也在变化。这个是容易忽视的一个点,原因是for循环的对象是一个可迭代的对象。
最新文章
- mysql查询一个小知识点,查询结果是空与查询出错是不一样的
- 编写Java程序最容易犯的21种错误
- bdyyservice.exe 系统错误
- cocos2dc-x解决中文乱码
- about云资源共享
- jbpm与spring hibernate struts整合
- dba_dependencies查询结果视图
- Python 集体智慧编程PDF
- 数据库MySQL——安装
- windows做代理服务器让内部linux上网
- 课堂动手动脑String
- C和C++ 中的const
- mybatis理解(0)
- get请求中url传参中文乱码问题--集锦
- How to Disable/Enable IP forwarding in Linux
- POJ 2352 treap
- oracle使用索引和不使用索引性能分析
- Xfire实现webservice时,对象传递规则及解析简析
- JS对字符串编码的几种方式
- 获取url的hash值
热门文章
- taskset
- 第五周:MySQL数据库
- Windows10中以管理员身份打开命令提示符
- virtualbox+vagrant学习-2(command cli)-17-vagrant ssh命令
- mysql测试数据创建
- ClassLoader 学习笔记
- C#动态加载/卸载Assembly的解决方案
- 443 B. Table Tennis
- p​o​s​t​m​a​r​k​使​用
- css3--js-jq动画效果