python中remove函数的踩坑记录

作者:JonnyJiang-zh 时间:2022-10-25 18:32:50 

摘要:

在python的使用过程中,难免会遇到要移除列表中对象的要求。这时可以使用remove函数。

对于python中的remove()函数,官方文档的解释是:Remove first occurrence of value.大意也就是移除列表中等于指定值的第一个匹配的元素。

语法

list.remove()

参数

obj 参数:从列表中删除的对象的索引

返回值

删除后不会返回值

常见用法:

a = [1,2,3,4],a.remove(1),然后a就是[2,3,4];对于a = [1,1,1,2],其结果也是[1,1,2],这是最基本的用法。

但是对于下面这个:


a = [1,2,3,4]
for i in a:
 a.remove(i)

# 结果
a = [2,4]

或者说


a = [1,1,1,1,1,2]
for i in a:
 a.remove(1)

#结果
a = [1,1,2]

是不是跟想象中的不一样,其主要原因如下(^表示当前迭代器位于列表中的位置):

   a = [ 1 , 2 , 3 , 4]

假设此时  ^

默认情况下只想第一个元素,然后执行a.remove(1),然后下标向后移动,列表因为删除了元素,后面的向前移动,如下:

   a = [ 2 , 3 , 4]

   此时       ^

此时执行a.remove(3),重复上面的移动

   a = [ 2 , 4]

   此时           ^

因为已经到了列表的边界,故结束遍历,并返回`a = [2,4]`。

解决办法:


# 一下为解决办法之一
d = dict(zip(range(len(a)), a))
[v for k, v in d.items() if v != value]

总结:

关于python列表的remove操作涉及了列表下标的移动以及列表中元素的移动,涉及了一些关于数组的知识。其核心问题就是前面所说的。

来源:https://www.cnblogs.com/JonnyJiang-zh/p/13799533.html

标签:python,remove函数,坑
0
投稿

猜你喜欢

  • Sql Server 查询性能优化之走出索引的误区分析

    2012-05-22 18:56:52
  • 对python 树状嵌套结构的实现思路详解

    2022-02-04 15:45:06
  • 基于centos7快速安装mysql5.7教程解析

    2024-01-26 14:59:28
  • Python爬虫采集Tripadvisor数据案例实现

    2022-01-28 14:54:28
  • JavaScript中的"类" 序言

    2008-02-18 13:26:00
  • python创建学生成绩管理系统

    2023-08-09 04:19:38
  • Python中排序函数sorted()函数的使用实例

    2021-08-01 09:52:02
  • 从if else到switch case再到抽象

    2010-11-05 18:30:00
  • javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来

    2024-04-10 13:58:29
  • vue实现触底查询功能

    2024-04-30 10:25:01
  • golang 中 channel 的详细使用、使用注意事项及死锁问题解析

    2024-04-26 17:26:45
  • 用asp获取微软安全更新列表的代码 小偷程序

    2011-02-24 11:19:00
  • 解决pycharm下载库时出现Failed to install package的问题

    2021-07-30 14:15:49
  • Python在字典中获取带权重的随机值实现方式

    2022-12-11 05:21:44
  • Layui 数据表格批量删除和多条件搜索的实例

    2024-04-10 10:43:56
  • mysql中的sql_mode模式实例详解

    2024-01-19 14:56:45
  • 浅谈python数据类型及类型转换

    2023-08-28 15:25:32
  • python画条形图实例

    2023-12-04 12:32:33
  • python实现异常信息堆栈输出到日志文件

    2022-04-26 20:26:21
  • vuejs事件中心管理组件间的通信详解

    2024-05-22 10:44:27
  • asp之家 网络编程 m.aspxhome.com