如何朗读Python列表理解?

How to read aloud Python List Comprehensions?

我的问题是关于python列表的理解可读性。当我遇到具有复杂/嵌套列表理解的代码时,我发现为了理解其意图,必须多次重新阅读它们。

有没有一种直观的方式来大声朗读清单的理解?似乎我应该从中间开始"阅读",然后阅读if条件(如果有),最后阅读表达式。

下面是我如何大声朗读下面的代码行,以便理解它:

1
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]

对于列表x中的每个元素和列表y中的每个元素,如果两个元素不相同,请创建元组列表。

我正在努力的两个例子:你将如何朗读下面的理解列表?

  • 从栈溢出的另一个问题:[x for b in a for x in b]

  • python文档有以下示例:江户十一〔一〕号

  • 对于朗读清单理解的方法的任何建议或指示,使意图变得更清楚,是非常赞赏的。


    我通常把它在我的脑海中展开成一个生成循环,例如

    1
    [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]

    对生成器的列表理解

    1
    2
    3
    4
    for x in [1,2,3]:
        for y in [3,1,4]:
            if x != y:
                yield (x, y)

    号示例1

    [x for b in a for x in b]是对

    1
    2
    3
    for b in a:
        for x in b:
            yield x

    EDOCX1[1]的示例结果:EDOCX1[2]

    示例2

    [[row[i] for row in matrix] for i in range(4)](注意内部表达是另一种理解!):

    1
    2
    for i in range(4):
        yield [row[i] for row in matrix]

    它是展开的

    1
    2
    3
    4
    5
    6
    7
    for i in range(4):
        l = []

        for row in matrix:
            l.append(row[i])

        yield l


    "根据y和z构造x的列表,其中q为真。"