通过笛卡尔积保持一个值不变来理解列表

2024-10-03 17:15:11 发布

您现在位置:Python中文网/ 问答频道 /正文

Python在每个元素中包含多个值的数据结构中进行迭代的语法非常漂亮。键入for x, y in XcrossY感觉不错。我想知道是否有一种聪明的方法来迭代其中一个集合,同时保持另一个值不变。明确地。你知道吗

     while q not in F:

            choices = list()

            for i in sigma:

                    if (q, i) in delta:

                            choices.append(i)

            choices = tuple(choices)

            # more pythonic way?
            #choices = tuple([i for (q, i) in delta])

注释后的代码的问题是它没有保持q不变。它只是在其中迭代。用常量值替换q会手动抛出SyntaxError: can't assign to literal。不过,我想替换它前面的5行。有什么聪明的方法吗?你知道吗


Tags: 方法in元素数据结构for键入语法not
1条回答
网友
1楼 · 发布于 2024-10-03 17:15:11

别管那部分,在其他地方使用常量,例如[(3,i) for q,i in delta]。如果需要,可以将未使用的变量命名为_,以便更清楚地表明您不打算引用它。如果您根本不想使用常量值,那么[i for (q, i) in delta]的原始代码就可以了(同样,如果您愿意,可以用_替换未使用的变量)。你知道吗

相关问题 更多 >