为了账号安全,请及时绑定邮箱和手机立即绑定

列表中的省略号[…]是什么意思?

列表中的省略号[…]是什么意思?

MM们 2021-03-29 15:10:33
我在玩python。我在IDLE中使用了以下代码:p  = [1, 2]p[1:1] = [p]print p输出为:[1, [...], 2]这是[…]什么 有趣的是,我现在可以将其用作无穷大列表的列表,即p[1][1][1]....我可以根据需要编写以上内容,并且仍然可以使用。它在内存中如何表示?有什么用?在某些情况下有用的示例可能会有所帮助。任何与官方文档的链接都将非常有用。
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

这意味着您创建了一个嵌套在其内部的无限列表,该列表无法打印。p包含p其中包含p...,依此类推。这种[...]记法是一种让您知道这一点并告知它无法表示的方式!看看@ 6502的答案,可以看到一张很好的图片,显示正在发生的事情。

现在,关于编辑后的三个新项目:

  • 这个答案似乎涵盖了它

  • Ignacio的链接描述了一些可能的用途

  • 与编程语言相比,这更是数据结构设计的主题,因此不太可能在Python的官方文档中找到任何参考。


查看完整回答
反对 回复 2021-04-02
?
莫回无

TA贡献1865条经验 获得超7个赞

这是您的代码创建的


//img1.sycdn.imooc.com//6066c7200001e79901690164.jpg

它是一个列表,其中第一个和最后一个元素指向两个数字(1和2),中间的元素指向列表本身。


在Common Lisp中,当启用打印圆形结构时,此类对象将被打印为


#1=#(1 #1# 2)

表示存在一个对象(用标记为1 #1=),该对象是具有三个元素的向量,第二个是对象本身(用反向引用#1#)。


取而代之的是,在Python中,您仅获得结构为圆形的信息[...]。


在这种特定情况下,描述不是模棱两可的(它向后指向一个列表,但是只有一个列表,因此它一定是那个列表)。但是在其他情况下可能是模棱两可的...例如


[1, [2, [...], 3]]

向后引用可以指向外部列表,也可以指向内部列表。可以用以下方式创建以相同方式打印的这两种不同结构


x = [1, [2, 3]]

x[1][1:1] = [x[1]]


y = [1, [2, 3]]

y[1][1:1] = [y]


print(x)

print(y)

他们会像

//img1.sycdn.imooc.com//6066c7360001ef3205420209.jpg

查看完整回答
反对 回复 2021-04-02
  • 3 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信