列表中项目的Python Plus-Equals语法错误

时间:2016-05-28 19:01:27

标签: python syntax

为什么这个python代码会导致等号的语法错误?我该怎么办呢?

start_pos = [0, 0]
direction = [1, 1]

end_pos = [start_pos[0] += direction[0],
           start_pos[1] += direction[1]]

我原本希望这可以实例化end_pos并将start_pos增加direction,就像在Ruby中一样。

1 个答案:

答案 0 :(得分:1)

正如@PM 2Ring所说,赋值不会在Python中返回值。

列表是可变的。因此,您可以定义返回结果的附加分配。

例如:

>>> def add_assignment(a, b):
...   a[0] += b[0]
...   a[1] += b[1]
...   return a
...
>>> start_pos = [0, 0]
>>> direction = [1, 1]
>>> end_pos = add_assignment(start_pos, direction)
>>> print start_pos, end_pos
[1, 1] [1, 1]