当前位置: 首页 > 面试题库 >

为什么list.remove()的行为不符合预期?

夏季萌
2023-03-14
问题内容
from pprint import *

sites = [['a','b','c'],['d','e','f'],[1,2,3]]

pprint(sites)

for site in sites:
        sites.remove(site)

pprint(sites)

输出:

[['a', 'b', 'c'], ['d', 'e', 'f'], [1, 2, 3]]
[['d', 'e', 'f']]

为什么不是None或空列表[]?


问题答案:

这是因为您在迭代列表时正在修改列表。你绝对不应该那样做。

对于这样的事情,您应该复制列表并对其进行迭代。

for site in sites[:]:
    sites.remove(site)


 类似资料:
  • 在实用服务中,我有两个功能foo和bar。js 在我的测试文件中,我导入了实用ervice.js并窥探了条形图函数。我期望调用间谍计数为1,因为foo被称为,但它是0。如果我错过了什么,请建议。

  • 我正试图实现一个全屏幕响应的图像解决方案,具有以下松散的要求 0-600像素 经过一点挖掘,我决定使用尺寸: iPhone 6 我为每个屏幕大小创建了单独的图像(用于艺术方向),并使用了以下srcset代码 图像具有以下CSS(因此它的行为类似于背景:封面) 我把我的桌面显示器的尺寸调整得很小,并调整到全屏,图像被替换到正确的位置 然而,在我的手机和平板电脑上,它始终显示1920年的图像 理想情况

  • 使用4.0.31,我的AppHost配置方法是这样声明的: 我的印象是,这将把swagger用户界面的url设置为.../api/Resources的https版本,但是我仍然在swagger URL文本框中获得常规的超文本传输协议endpoint,例如: 我们的web服务器位于执行SSL卸载(并需要SSL)的负载平衡器之后,因此URL应为: 一个积极的方面是,使用“UseHttpsLinks”实

  • 我有一个选择一个图像的意图(我在一个片段中这样称呼它): 在我的活动中: 输出:OnActivityResult:请求代码:66084 OnActivityResult:Result:-1成功=true 正如您所看到的,结果是成功的,但请求代码发生了更改。所以我无法查证是什么请求。

  • 我在Spring Boot项目中使用Resilience4J调用REST客户机,如下所示: 看到示例中包含了一个回退方法,我决定添加它,尽管我并不真的想调用不同的方法,我只想再次调用我的原始方法。 不管怎样,我指定了一个回落: 现在,我看到回退方法被重试,但是每次都会抛出HttpServerErrorException,这意味着使用者将收到一个异常作为对其调用的响应。 谢谢

  • 我正在仪表板上工作,用于监控作业,状态被更新,但是Ui网格中的在这里没有按预期运行,我尝试了什么 并且该函数应该使用fontgreat图标更新状态 但安格拉尔并没有像我所期望的那样,而是把这当作一段文字 这里是一个笨蛋 http://plnkr.co/edit/7UapXgNzZWPXVZbLjYFy?p=preview 如果你能帮我解释清楚,我们将不胜感激

  • 问题内容: 为什么我要有一个数组并在其中放入一堆不同大小的类型… …除了和.... 文档说明: “ AnyObject可以代表任何类类型的实例” 但是,当我命令点击,或者看到这些类型的标准库定义,我看到他们都值。 这里的根本问题是什么?为什么这样设计? 问题答案: Swift中有两种类型的东西- 可以真正容纳任何东西-结构,枚举或类,以及只能容纳类。 有时似乎可以保留结构的原因是,某些特定类型会根