我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python list遍历remove(

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python list遍历remove(

有这样一个列表:

s=list('abcdefg')

 现在因为某种原因我们需要从s中踢出一些不需要的元素,方便起见这里直接以踢出所有元素的循环代替:

for e in s:
    s.remove(e)

 结果却是:

In [3]: s
Out[3]: ['b', 'd', 'f']
多次示例后发现,这种remove方式保持着隔1删1的规律。
那么改一下代码看看出了什么问题:
In [14]: i=0
In [15]: for e in s: 
    ...:     print("第"+str(i)+"次循环删前:s=",s) 
    ...:     print(e) 
    ...:     s.remove(e) 
    ...:     print("第"+str(i)+"次循环删后:s=",s) 
    ...:     i=i+1 
可以看到第1次循环时e的赋值跳过‘b’直接变成了‘c’,鉴于不太清楚底层内存分配和计数的原理,只能做以下推测:
第0次循环后s的因为remove了‘a’导致长度减小了1,第1次循环时依然按s[1]给e赋值,可惜此时s=['b','c','d','e','f','g'],导致e=s[1]=‘c’,这样就跳过了‘b’。
在其他语言中可能也会有这样的陷阱,在Python中应避免在遍历序列时直接删除序列的元素,这里有一个替代的办法,我们可以遍历s的一个copy:
# s[0:]替换成s.copy()也可以
for e in s[0:]:
    s.remove(e)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python list遍历remove(

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python list遍历remove(

有这样一个列表:s=list('abcdefg') 现在因为某种原因我们需要从s中踢出一些不需要的元素,方便起见这里直接以踢出所有元素的循环代替:for e in s: s.remove(e) 结果却是:In [3]: sOut[3]
2023-01-31

python遍历 truple list dictionary的几种方法总结

实例如下:def TestDic1():dict2 ={'aa':222,11:222}for val in dict2:print valdef TestDic2():dict2 ={'aa':222,11:222}for (key,va
2022-06-04

Python List remove()实例用法详解

描述remove() 函数用于移除列表中某个值的第一个匹配项。 语法remove()方法语法: list.remove(obj) 参数obj -- 列表中要移除的对象。 返回值 该方法没有返回值但是会移除列表中的某个值的第一个匹配项。 实例
2022-06-02

Python List remove()的使用方法介绍

这篇文章主要介绍“Python List remove()的使用方法介绍”,在日常操作中,相信很多人在Python List remove()的使用方法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pyt
2023-06-20

Python 列表(List) 的三种遍历方法实例 详解

Python 遍历 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,下面废话不多说,直接贴代码#!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '_
2022-06-04

python的os遍历

使用python遍历目录用到方法一:os.path.walk(top, func, arg)模块方法,该方法需要输入3个参数:top为起始路径, func为回调函数(可以对遍历出的目录文件做处理),arg为回调函数func的参数。见下例子:
2023-01-31

python遍历文件

#今天模仿前锋教育视频写的,感觉很实用。import osdef alldir(path,sp=''): file_list=os.listdir(path) # print(file_list) sp+='***'
2023-01-30

python 遍历目录

python使用os模块判断文件基础知识#导入os模块import os#判断路径是否存在(True, False)os.path.exists('/tmp/test')#判断目标是否是文件(True, False)os.path.isfi
2023-01-31

python深度遍历

import osdef DeepthSearch(path):stack1 = []OrdinaryFiles = []stack1.append(path)num = 0while len(stack1) != 0:one = stac
2023-01-31

python 遍历日期

import datetimestart = '2016-06-01'end = '2017-01-01'datestart = datetime.datetime.strptime(start, '%Y-%m-%d')dateend = 
2023-01-31

Java中逆序遍历List集合的实现

本文主要介绍了Java中逆序遍历List集合的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-28

python文件遍历

#遍历储存文件def text_save(filename, product): # filename为写入文件的路径,product为要写入数据列表.file = open(filename, 'a') # 打開或者創建文件for i
2023-01-30

list的4种遍历方式(实例讲解)

废话不多说,直接上代码:import java.util.ArrayList;import java.util.Iterator;import java.util.List;import com.hbut.domain.Person;pub
2023-05-31

Java如何将ResultSet结果集遍历到List中

这篇文章主要介绍了Java如何将ResultSet结果集遍历到List中问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-28

Python数组的遍历

Python的数组是一个好东西啊, 在Python中,我们习惯这样遍历: for item in sequence: process(item) 这样遍历取不到item的序号i,所有就有了下面的遍历方法: for index in
2023-01-31

Java中遍历List集合有哪些常用方法?(在Java中,有哪些常用的方式来遍历List集合?)

遍历JavaList集合的常用方法包括:for-each循环:遍历每个元素。迭代器:顺序访问元素,支持双向遍历和修改。流API:提供更简洁和强大的遍历方式,适合复杂处理。ListIterator:子接口,提供双向遍历和索引获取。Lambda表达式:简洁替代方案,可与for-each循环和流API结合使用。选择方法取决于集合大小、遍历目的和性能需求。一般来说,小型集合和简单遍历适合for-each循环;需要修改元素适合迭代器;流操作和复杂处理适合流API;双向遍历适合ListIterator;简洁性适合La
Java中遍历List集合有哪些常用方法?(在Java中,有哪些常用的方式来遍历List集合?)
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录