【问题标题】:What's the output of 'd = {0, 1, 2} for x in d: print(d.add(x)) .And why?'d = {0, 1, 2} for x in d: print(d.add(x)) 的输出是什么。为什么?
【发布时间】:2019-07-11 22:51:06
【问题描述】:

Python代码是:

d = {0, 1, 2}
for x in d:
    print(d.add(x))

输出是什么,为什么?

【问题讨论】:

  • 你可能通过运行它就能找到第一部分!这对于尝试第二部分也很重要。
  • 将现有项目添加到集合不会修改它。
  • 另外,如果在迭代过程中对集合进行了修改,则会出现错误:RuntimeError: Set changed size during iteration
  • 我认为您应该真正尝试自己弄清楚这些事情。网上有一些教程,您可以在其中在线尝试 python 解释器,因此您甚至不必在计算机上安装 python 来尝试。顺便说一句。我认为无论元素是否已经在集合中,输出都不会改变,只是不会发生错误,但是如果您将元素添加到另一个集合而不是您正在迭代的集合中,您可以尝试会发生什么......

标签: python python-3.7


【解决方案1】:

输出只是

None
None
None

这是因为d.add(x)x 添加到集合中并返回None

【讨论】:

    【解决方案2】:

    让我们一步一步理解这一点

    (1) d 是一组元素{0,1,2}

    (2)Set是一个只有唯一值的数据结构

    循环:

    (3)对于 d 中的 x:

    打印(d.add(x))

    这将从集合中获取每个元素并将其添加到 self (d.add(x))

    它什么也不返回。

    (4)你会得到三遍的输出 None 因为循环会运行三遍

    因为它是一个集合,向自身添加元素将返回原始集合(它将丢弃重复的条目)

    【讨论】:

      猜你喜欢
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2020-12-28
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多