专栏首页python 实践经验python面试题目解析--iterator考察点和list考察点
原创

python面试题目解析--iterator考察点和list考察点

问题:

请推测一下,下面的程序输出结果是什么?

def test_iterator2():
    nums = [1, 2, 3, 4]
    for i in nums:
        nums.remove(i)
    print(nums)

好,我们看一下这段程序的实际执行结果是什么,跟我们的推断是否一致 :

[2, 4]

为什么会是这个结果呢? 我们首选需要了解Python的一个循环机制:Python中的for循环实质是一个迭代器iterator,它不断调用next方法返回下一个值,比如:

for x in nums:
print(x)

等价于:

it = iter(nums)
while True:
    try:
print(*it)
        x = next(it)
    except StopIteration:
        break

而list中的remover方法是遍历list中的元素,删除对应的值。

题目中remover 之后又调用了一次next方法,出现了[2,4]的结果 ܺ+�

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 语法基础之字符集编码

    Python初学者编码实践中经常遇到encode error,decode error。

    kevindi
  • import导入第三方库或者模块

    通常模块为一个文件,直接使用 import 文件名 就可以导入。可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、...

    kevindi
  • leetcode448. Find All Numbers Disappeared in an Array

    假设一个长度为n的整数数组,数组中的元素的值位于[1,n]区间中。问,该数组中有哪些[1,n]区间中的整数没有出现?

    眯眯眼的猫头鹰
  • LeetCode(1)-找出数组中重复的数字

    TrueDei
  • 【LeetCode每日打卡】136. Single Number

    Given a non-empty array of integers, every element appears twice except for one....

    韩旭051
  • 1500字,8个问题,彻底理解堆!

    堆(heap)是计算机科学中被广泛使用的数据结构,如排序、推荐,还可作为优先级队列,与图也能结合,还能与常见算法思想如贪心等结合起来,高效实现算法。

    double
  • 力扣-牛客刷题第一天

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    我乃小神神
  • 剑指offer第1题:数组中的重复数字

    之前的刷题都是随心所欲的刷,没有按照什么章程来给各位小伙伴展现。本周开始,小白把LeetCode上面的《剑指offer》,逐一的进行分享吧~会在公众里面开一个专...

    鹏-程-万-里
  • LeetCode 189:旋转数组 Rotate Array

    Given an array, rotate the array to the right by k steps, where k is non-negativ...

    爱写bug
  • LeetCode 189:旋转数组 Rotate Array

    Given an array, rotate the array to the right by k steps, where k is non-negativ...

    爱写bug

扫码关注云+社区

领取腾讯云代金券