python中remove的意思_Python中remove,pop,del的区别

先上题:写出最终打印的结果

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 "", line 1, in

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循环的对象是一个可迭代的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值