为什么带有 pop 方法(或 del 语句)的 for 循环不迭代所有列表元素[重复]

2024-01-27

我是 Python 新手,正在尝试使用列表 我在 linux2 上使用 Python 3.2.3(默认,2012 年 10 月 19 日,20:13:42),[GCC 4.6.3]

这是我的示例代码

>>> l=[1,2,3,4,5,6]
>>> for i in l:
...     l.pop(0)
...     print(l)
... 

我期望以下输出

1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
4
[5, 6]
5
[6]
6
[]

相反,我得到了这个

1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]

for 循环在 3 圈后停止迭代。有人可以解释为什么吗?


展开一点(插入符号 (^) 位于循环“索引”):

your_list = [1,2,3,4,5,6]
             ^

弹出第一个项目后:

your_list = [2,3,4,5,6]
             ^

现在继续循环:

your_list = [2,3,4,5,6]
               ^

现在弹出第一项:

your_list = [3,4,5,6]
               ^

现在继续循环:

your_list = [3,4,5,6]
                 ^

现在弹出第一项:

your_list = [4,5,6]
                 ^

现在继续循环——等等,我们完成了。 :-)


>>> l = [1,2,3,4,5,6]
>>> for x in l:
...     l.pop(0)
... 
1
2
3
>>> print l
[4, 5, 6]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么带有 pop 方法(或 del 语句)的 for 循环不迭代所有列表元素[重复] 的相关文章

  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • Python 使用 Gstreamer 访问 USB 麦克风时遇到问题,以便在 Raspberry Pi 上使用 Pocketsphinx 执行语音识别

    所以Python的表现就好像它根本听不到我的麦克风发出的任何声音 问题就在这里 我有一个Python 2 7 假设使用的脚本Gstreamer通过以下方式访问我的麦克风并为我进行语音识别口袋狮身人面像 我在用着脉冲音频我的设备是树莓派 我的
  • Pandas dataframe:每批行的操作

    我有一个熊猫数据框df我想计算每批行的一些统计信息 例如 假设我有一个batch size 200000 对于每批batch sizerows 我想要一列的唯一值的数量ID我的数据框 我怎样才能做这样的事情呢 这是我想要的一个例子 prin
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦
  • 将二维数组放入 Pandas 系列中

    我有一个 2D Numpy 数组 我想将其放入 pandas 系列 而不是 DataFrame 中 gt gt gt import pandas as pd gt gt gt import numpy as np gt gt gt a np
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • Python tkinter.filedialog Askfolder 干扰 clr

    我主要在 Spyder 中工作 构建需要弹出文件夹或文件浏览窗口的脚本 下面的代码在spyder中完美运行 在 Pycharm 中 askopenfilename工作良好 同时askdirectory什么都不做 卡住了 但是 如果在调试模式
  • Python中列表中两个连续元素的平均值

    我有一个偶数个浮点数的列表 2 34 3 45 4 56 1 23 2 34 7 89 我的任务是计算 1 和 2 个元素 3 和 4 5 和 6 等元素的平均值 在 Python 中执行此操作的快捷方法是什么 data 2 34 3 45
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • 揭秘sharedctypes性能

    在 python 中 可以在多个进程之间共享 ctypes 对象 然而我注意到分配这些对象似乎非常昂贵 考虑以下代码 from multiprocessing import sharedctypes as sct import ctypes
  • 对使用 importlib.util 导入的对象进行酸洗

    我在使用Python的pickle时遇到了一个问题 我需要通过将文件路径提供给 importlib util 来加载一些 Python 模块 如下所示 import importlib util spec importlib util sp
  • 如何使用 Bokeh 动态隐藏字形和图例项

    我正在尝试在散景中实现复选框 其中每个复选框应显示 隐藏与其关联的行 我知道可以通过图例来实现这一点 但我希望这种效果同时在两个图中发生 此外 图例也应该更新 在下面的示例中 出现了复选框 但不执行任何操作 我显然不明白如何更新用作源的数据
  • Python:我不明白 sum() 的完整用法

    当然 我明白你使用 sum 与几个数字 然后它总结所有 但我正在查看它的文档 我发现了这一点 sum iterable start 第二个参数 start 的作用是什么 这太尴尬了 但我似乎无法通过谷歌找到任何示例 并且对于尝试学习该语言的
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • 带有 RotatingFileHandler 的 Python 3 记录器超出 maxBytes 限制

    我使用以下代码来限制日志文件的大小 最小示例 import logging from logging handlers import RotatingFileHandler Set up logfile and message loggin
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • Python问题:打开和关闭文件返回语法错误

    大家好 我发现了这个有用的 python 脚本 它允许我从网站获取一些天气数据 我将创建一个文件和其中的数据集 有些东西不起作用 它返回此错误 File
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有

随机推荐

  • 如何从Raspberry Pi Zero发送实时传感器数据到PC?

    我写了一个Python3脚本 运行在树莓派零W从 IMU 传感器 MPU9250 收集数据并创建 3 个不同的角度值 滚动 俯仰 偏航 看起来像这样 def main while True dataAcc mpu readAccelerom
  • 在 Windows 中传输大文件的最佳方法

    在备份我们的网络电子邮件服务器期间 我经常需要在内部和外部驱动器之间传输 gt 50GB 有时 gt 100GB 的大文件 传输这些文件的最佳方法是什么 命令行 例如 XCOPY 如果由于时间限制或网络问题而中断 可能有足够强大的功能可以继
  • Jersey - 为资源方法注册 ExceptionMapper

    问题特定类的异常处理 映射 https stackoverflow com questions 36370991让我想到了如何注册的问题ExceptionMapper到特定资源Method 我尝试过使用DynamicFeature像这样 动
  • 对 node.js、connect-mongo 的并行请求、会话被覆盖

    在当前的项目 一种商店系统 中 我使用node js快递JS and 连接 mongo作为会话存储 在客户端 我在启动时使用单个请求来创建一个新会话 然后向 Node js 服务器发送多个并行请求 当然 因为这些并行请求会更改会话 所以这些
  • Golang:JSON:如何将字符串数组解组为 []int64

    Golang encoding json包让你使用 string结构标记以便编组 解组字符串值 例如 309230 into int64场地 例子 Int64String int64 json string 但是 这不适用于切片 即 int
  • 与 join 一起计数

    我想找出哪个播放列表包含超过 2 首歌曲 该语句有效 但我想要播放列表的名称和显示的歌曲的 count 我想我必须使用连接 但我不明白它应该如何工作 有人可以帮忙吗 playlist table id name playlist songs
  • 从具有 NaN 的多维数组中找出最小值

    我有一个二维数组 double 我想知道最小值是多少 我尝试了 Linq Select Min 但由于我的数组通常包含NaN值 那么minvalue总是NaN 因此 我需要某种方法来找到 跳过 NaN 的最小值 任何帮助深表感谢 今天是扩展
  • 反向应用提交到工作副本

    为了研究先前提交引入的效果 我想将其反向应用到我的工作副本并修改代码 我管理了围绕创建和应用补丁的工作流程 但想知道这是否可以更容易地完成 git checkout b tmp fiddle git diff R p d9fd2bb d9f
  • JSF Converter 错误消息中的自定义变量

    我有一个表单页面 其中有一个接受日期的 inputText 字段 我们有一个转换器 可以将文本框中的字符串转换为 Date 对象 即 2011 03 01 到 java util Date 2011 03 01 如果字符串不是日期 例如 1
  • 带 URL 操作的 JSF 表单?

    有没有什么方法可以调用 URL 操作
  • 使用 java UrlConnection 通过 ntlm(或 kerberos)进行身份验证

    我需要使用 java 使用 REST Web 服务 传递域用户帐户的凭据 现在我正在用经典的asp来做 set xmlHttp server createObject msxml2 serverxmlhttp xmlHttp open me
  • 如何在 django 中禁用南调试日志记录?

    当我在 Django 中运行测试时 失败后我从 South 获得了几页调试输出 如下所示 south DEBUG south execute CREATE INDEX sometable 4d5bad5 ON video playable
  • Rails 删除链接 JavaScript ajax 调用

    我想创建一个ajax删除调用 单击链接时 应出现确认框 然后 p 标签淡出 注释 问题在于ajax调用应该如何以及如何显示确认框 HTML 视图 a class softdelete href blogs 5 comments 18 sle
  • 如何在 Core 2.0 的 ConfigurationBuilder 中设置BasePath

    如何在 Core 2 0 的 ConfigurationBuilder 中设置基本路径 我用谷歌搜索并发现this https stackoverflow com questions 33169589 specify the applica
  • 使用密钥保管库的更安全方式

    通常 当您使用密钥保管库加密和解密数据时 您必须以纯文本形式将 AD 注册应用程序 有权访问密钥保管库 的 ClientID 和 ClientSecret 保存在某处 如果有人窃取了 ClientID 和 Secret 那么任何人都可以声称
  • 如何设置机器人的状态

    所以我试图让我的机器人流媒体与抑郁症 但我已经尝试了多种方法 但它们不起作用 我尝试过这些方法 client user setPresence game name with depression status online bot user
  • 我可以在 BigQuery 中检索外部表数据的文件名吗?

    希望为部门团队实现一个简单的数据存储 他们目前在其中管理大量 excel csv 文件 我们将让他们准备文件并将它们以 CSV 格式放入 GCS 存储桶中 然后将外部 BQ 表指向此 一切都很好 但是 如果他们运行查询并看到一些数据 然后想
  • 在 Objective C、.net 和 Android 中生成相同的加密字符串 AES/CBC/PKCS7Padding

    我想在iOS中生成相同的加密字符串 在 net中生成android 我可以在 android 和 net 中生成相同的字符串 但对于 Objective C 则不同 安卓代码 public static String encrypt Str
  • VS 安装项目:安装时卸载其他组件

    我正在创建一个 Visual Studio 安装项目 我想从安装我的组件时从系统中卸载另一个组件 另一个组件是从我自己使用 Visual Studio 创建的设置安装的 目前 当我从组件的安装操作中调用另一个组件的卸载时 我收到错误代码 1
  • 为什么带有 pop 方法(或 del 语句)的 for 循环不迭代所有列表元素[重复]

    这个问题在这里已经有答案了 我是 Python 新手 正在尝试使用列表 我在 linux2 上使用 Python 3 2 3 默认 2012 年 10 月 19 日 20 13 42 GCC 4 6 3 这是我的示例代码 gt gt gt