【发布时间】:2009-12-09 05:32:10
【问题描述】:
以下行似乎不起作用:
(count, total) += self._GetNumberOfNonZeroActions((state[0] + x, state[1] - ring, state[2]))
我想在这种情况下不可能使用 += 运算符。我想知道为什么?
编辑:实际上我想要的是添加到变量计数并总计该函数返回的元组给出的值。现在想来,允许 (a, b) += (1, 2) 是没有意义的,因为它会创建一个新的元组,对吧?
换句话说,有没有办法简化这个?
res = self._GetNumberOfNonZeroActions((state[0] + x, state[1] + ring, state[2]))
count, total = res[0], res[1]
【问题讨论】:
-
在阅读了您的 cmets 以回答答案之后,现在重新阅读您的问题,我对您的实际目标感到非常困惑。您的解释不包括循环,您是否循环不同状态并累积?或者你只是想要元组拆包?你的“换句话说”看起来你只是想要元组解包,这可以通过用
=替换原始行中的+=来实现。用元组循环 += 将创建一个越来越长的元组。 -
我想实现点加法之类的东西,这是(a, b) = (a, b) + (x, y) = (a+x, b+y)。
-
那么你的问题和stackoverflow.com/questions/497885/python-tuple-operations基本一样,这里的stuple解决方案可能比依赖numpy省力。
标签: python