Python -- 罗素悖论(列表,不是集合)

标签 python nested-lists

我知道可以在列表中创建列表。但是我到底能装多少个。我在 IPython 控制台中试过这个:

In [1]: Alist = [1]

In [2]: Alist.append(Alist)

In [3]: Alist
Out[3]: [1, [...]]

In [4]: Alist[1]
Out[4]: [1, [...]]

In [5]: Alist[1][1]
Out[5]: [1, [...]]

In [6]: Alist[1][1][1]
Out[6]: [1, [...]]

现在我可以永远尝试访问 Alist[1][1][1][1]...[1],但这怎么可能呢?另外,我的机器怎么没有用完内存? 如果有帮助,我会在 Ubuntu 16.04 上使用 Python2.7。

最佳答案

这里只有一个有限大小的对象:

您首先创建一个包含一个元素 [1] 的列表对象,然后创建对该对象的引用,您将其称为 Alist。当您将 Alist 附加到“istelf”时,您实际上只是将对对象的引用附加到对象本身。您现在有一个包含两个元素的列表对象:1 和对自身的引用。这里不涉及无限内存。

试试这个说服自己:

Alist = [1]
Alist.append(Alist)
Alist[1][0] = 0
Alist[0]

关于Python -- 罗素悖论(列表,不是集合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44878815/

相关文章:

python - 如何下载不同操作系统的pip包?

python - 如何使用自定义命令从命令行执行 python 脚本?

python - Python 中的时间戳服务器 rfc3161 响应 token 生成

html - 有序列表和子列表问题 HTML

python - 如何并行添加两个嵌套列表并将结果附加到 python 中的新列表

html - less:如何只匹配那些 <li> 和 <ul> child

python - 在另一个列表的嵌套列表中比较/查找列表

python-iptables : Cryptic error when allowing incoming TCP traffic on port 1234

python - 删除 seaborn 线图图例标题

python - 如何生成扁平列表列表的所有排列?