【发布时间】:2021-10-30 15:22:30
【问题描述】:
在尝试使用列表推导打印多行和多列时,以下代码有效
X=[[x for x in range(y)] for y in range(3)]
但是这段代码不起作用
X=[x for x in range(y) for y in range(3)]
使用列表而不是直接循环有什么不同。通常对于多个循环,它从左到右工作。在这种情况下,循环是从右到左工作的,因此我们可以在 for 中声明 y 之前使用 y。
【问题讨论】:
-
在这一行
X=[x for x in range(y) for y in range(3)]你得到错误没有定义y你可以像下面这样写但是你的输出不同:X=[[x] for y in range(3) for x in range(y) ] -
除了链接的副本,请尝试treyhunner.com/2015/12/python-list-comprehensions-now-in-color。或者试试copying and pasting your planned question title into a search engine,它可以提供多个高质量的结果。您有多个金徽章,并且您的帐户已使用近 8 年;你现在应该知道这些技术和expectations。
-
...事实上,当我尝试该搜索查询时,我发现其中一件事是 您在不到一天前问了同样的问题,并用同样的重复项关闭了它链接.
-
@KarlKnechtel 我浏览了标记的链接,但找不到我的查询的答案。由于该问题已关闭以获得答案,因此我不得不发布新问题。我想知道当我将列表放在内部 for 循环中时,列表理解的工作方式有何不同。然后它从右到左工作,否则它从左到右工作。
-
链接的副本准确地解释了发生了什么。您显然已经了解您从代码中得到的输出。 “工作方式有何不同”不是一个有意义的问题。如果你想看看它是如何实现的,源代码是可用的。如果您想知道为什么它被定义为这样工作,您应该询问负责人。
标签: python