【问题标题】:unpacking nested loops from list comprehension [closed]从列表理解中解包嵌套循环[关闭]
【发布时间】:2021-10-13 02:05:28
【问题描述】:

需要了解以下列表理解。

return [x for g in alist for x, R in aux(g) for I in R]

请有人用简单的循环而不是理解来编写上面的代码,这样我就可以理解它是如何工作的。谢谢

【问题讨论】:

标签: python list list-comprehension


【解决方案1】:

它有助于在 for 关键字的组中向后阅读理解。您从最外面的循环 (left) 开始,它是 for g in alist,然后以 for

为一组向内移动 (right)
result = []
for g in alist:
    for x, R in aux(g):
        for I in R:
            result.append(x)

或者如果以下有帮助:

 for g in alist:
^---
    for x, R in aux(g):
   ^----
        for I in R:

这就是理解的方式。

【讨论】:

  • 不是相反吗? print([(a, b) for a in range(2) for b in range(2)]) 例如将打印 [(0, 0), (0, 1), (1, 0), (1, 1)]
  • 我试过你的代码,它给出了以下错误。 UnboundLocalError:在赋值之前引用了局部变量“R”
  • @j1-lee 你是对的。但是使用相同范围的例子很糟糕
  • 您的回答与您对“您从 R 中的 I 的最外层循环(最右边)开始,然后以 for 组向内(左)移动”的描述相反。
猜你喜欢
  • 1970-01-01
  • 2021-02-20
  • 2014-11-18
  • 1970-01-01
  • 2011-04-07
  • 2022-01-10
  • 2021-02-13
  • 2021-09-02
  • 1970-01-01
相关资源
最近更新 更多