【问题标题】:Generator comprehension which adds different numbers of the same item生成器理解,它添加不​​同数量的相同项目
【发布时间】:2014-09-18 13:11:06
【问题描述】:

给定:

foo = (a,b,c,d,e,f)
multi = (b,d)

生成器理解给出以下元组:

((a, None),
(b, True),
(b, False),
(c, None),
(d, True),
(d, False),
(e, None),
(f, None))

multi 中的项目出现两次,分别是 TrueFalse,而其他项目则显示为 None

【问题讨论】:

    标签: python generator generator-expression


    【解决方案1】:

    您可以使用嵌套循环并根据成员资格测试选择一个或另一个可迭代对象:

    ((v, other) for v in foo for other in ((True, False) if v in multi else (None,)))
    

    上面的嵌套for循环版本是:

    def gen():
        for v in foo:
            iterable = (True, False) if v in multi else (None,)
            for other in iterable:
                yield (v, other)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2013-06-04
      • 2017-08-05
      相关资源
      最近更新 更多