遍历列表中的字典

时间:2019-07-19 16:54:07

标签: python

  1. 以下是具有字典的列表的列表

    (Pdb) [group.orgs for group in membership.group_permission_roles]
    
    [[{'moid': '5d2d5ee66972652d30d5e456', 'object_name': None}], [{'moid': '5d3127ec6972652d30d60fdd', 'object_name': None}], [{'moid': '5d2f2e2b6972652d30d606f4', 'object_name': None}]]
    
  2. 我们如何获取列表中每个“ moid”的值。

  3. 当我尝试如下迭代时,值将被覆盖

    (Pdb) [org.moid for org in group.orgs for group in membership.group_permission_roles ]
    
    ['5d2f2e2b6972652d30d606f4', '5d2f2e2b6972652d30d606f4', '5d2f2e2b6972652d30d606f4']
    

1 个答案:

答案 0 :(得分:0)

第二段代码仅适用于您,因为您先前已经在第一段代码中定义了group(并且正在使用Python 2,列表理解变量会泄漏到周围的范围内)。 group根本不是来自当前迭代,而是始终指原始列表理解的最终迭代。

嵌套列表理解是“向后的”,因为它们遵循与标准嵌套for循环相同的结构。在您的情况下,循环看起来像这样:

for group in membership.group_permission_roles:
  for org in group.orgs:
    ... org.moid  ...

因此嵌套列表的理解应为:

[org.moid for group in membership.group_permission_roles for org in group.orgs]
相关问题