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行。有一个聪明的方法吗?
答案 0 :(得分:0)
单独保留该部分并在其他地方使用常量,例如[(3,i) for q,i in delta]
。如果需要,可以将未使用的变量命名为_
,以便更清楚地表明您不打算引用它。如果您根本不想使用常量值,则[i for (q, i) in delta]
的原始代码就可以了(如果需要,再次使用_
替换未使用的变量)。