包含自身的列表-为什么重置其元素会影响第一级?

一个男子

这几乎就像是一个等待发生的“罗素悖论” ... :-)。我很确定这一定是一个众所周知的问题,但是我没有对此进行很多讨论。

我在python3上。我意识到列表可以包含自身

s = [1, 2, 3]
s[1] = s

结果与

s
#[1, [...], 3]

这导致许多有趣的结果。例如,只是为了好玩:

s in s
#True

s[1][1][1][1][1][1][1] == s
#True

但是,现在最让我困惑的是:

id(s)
#2452848996168

id(s[1])
#2452848996168

好的。这是同一个对象。但为什么

s[1] = 5

s
#[1,5,3]

id(s)
#2452848996168

因此,如果ids不变,而我刚将ID设置为5的对象,为什么我就s不能做到公正5呢?python如何知道将第二个元素设置为第一层?

更奇怪的是尝试

s[1][1][1][1] = 5

而且你仍然得到

s
#[1, 5, 3]

我该如何缠住我的头?

布伦·巴恩

您没有将ID设置为5的对象。而是将列表的某个元素设置为5。可以将列表索引视为指向对象的“标签”或“指针”。在设置中s[1] = 5,您没有更改s[1]先前引用的对象您更改了s[1]指向的内容。

另一种思考的方式是:最初您有s = [1, 2, 3]现在假设您这样做s[1] = 5您是“将2变成5”吗?不。您只是s从“我的第二个要素是这个数字2”变为“我的第二个要素是这个数字5”。同样,在您的示例中,您只是s从“我的第二个要素是我自己”转变为“我的第二个要素是数字5”。

您后面的with实例s[1][1][1][1] = 5是同一件事,因为s[1][1][1]is是s,所以您对do所做的任何事情都与tos[1][1][1]相同s这可以用数学风格的“证明”来显示:

s[1][1][1][1] = 5
(s[1][1][1])[1] = 5 # indexing operations group left to right
s[1] = 5 # substitute s for s[1][1][1] since they are the same

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对象包含其自身的递归列表

来自分类Dev

删除列表第一级的元素

来自分类Dev

列表元素自身增量

来自分类Dev

如何将仅粗体设置为第一级列表元素?

来自分类Dev

为什么将列表附加到其自身然后删除会导致内存泄漏

来自分类Dev

包含其自身类型属性的 Swift 类

来自分类Dev

为什么允许列表追加自身?

来自分类Dev

为什么for循环会更改for循环中的列表后跳过第一个元素?

来自分类Dev

Android setText for循环中包含覆盖其自身的JsonObject值

来自分类Dev

查找包含其自身长度的字符串的长度?

来自分类Dev

c#中有什么方法可以让Type包含自身?

来自分类Dev

c#中有什么方法可以让Type包含自身?

来自分类Dev

在多对多双向映射中 findAll() 获取行,每行包含其子级,而子级又包含自身

来自分类Dev

浏览包含package.json的文件夹时,Browserify会覆盖其自身的配置?

来自分类Dev

此列表如何理解其自身的工作原理?

来自分类Dev

在项目触发其自身删除后更新列表

来自分类Dev

如果将列表附加到自身会怎样?

来自分类Dev

为什么修改列表会影响过滤列表?

来自分类Dev

为什么修改列表会影响过滤的列表?

来自分类Dev

如何从python中的多维列表的第一级中删除None

来自分类Dev

为什么<p>的边距会影响包含div的位置?

来自分类Dev

复制并获取第一级元素

来自分类Dev

为什么这个包含指向自身的指针的结构无法正常工作?

来自分类Dev

如何从第一级和第二级数组获取IDS列表-Javascript

来自分类Dev

(Scala)可以包含列表作为元素的列表

来自分类Dev

根据列表的大小打印包含元素的列表

来自分类Dev

包含单个元素的zip列表

来自分类Dev

包含对的列表中的元素相乘

来自分类Dev

如何获得具有相同属性的同一级别的元素或数据列表?

Related 相关文章

  1. 1

    对象包含其自身的递归列表

  2. 2

    删除列表第一级的元素

  3. 3

    列表元素自身增量

  4. 4

    如何将仅粗体设置为第一级列表元素?

  5. 5

    为什么将列表附加到其自身然后删除会导致内存泄漏

  6. 6

    包含其自身类型属性的 Swift 类

  7. 7

    为什么允许列表追加自身?

  8. 8

    为什么for循环会更改for循环中的列表后跳过第一个元素?

  9. 9

    Android setText for循环中包含覆盖其自身的JsonObject值

  10. 10

    查找包含其自身长度的字符串的长度?

  11. 11

    c#中有什么方法可以让Type包含自身?

  12. 12

    c#中有什么方法可以让Type包含自身?

  13. 13

    在多对多双向映射中 findAll() 获取行,每行包含其子级,而子级又包含自身

  14. 14

    浏览包含package.json的文件夹时,Browserify会覆盖其自身的配置?

  15. 15

    此列表如何理解其自身的工作原理?

  16. 16

    在项目触发其自身删除后更新列表

  17. 17

    如果将列表附加到自身会怎样?

  18. 18

    为什么修改列表会影响过滤列表?

  19. 19

    为什么修改列表会影响过滤的列表?

  20. 20

    如何从python中的多维列表的第一级中删除None

  21. 21

    为什么<p>的边距会影响包含div的位置?

  22. 22

    复制并获取第一级元素

  23. 23

    为什么这个包含指向自身的指针的结构无法正常工作?

  24. 24

    如何从第一级和第二级数组获取IDS列表-Javascript

  25. 25

    (Scala)可以包含列表作为元素的列表

  26. 26

    根据列表的大小打印包含元素的列表

  27. 27

    包含单个元素的zip列表

  28. 28

    包含对的列表中的元素相乘

  29. 29

    如何获得具有相同属性的同一级别的元素或数据列表?

热门标签

归档