在我使用pygame编写的图形程序中,我使用代表如下坐标的元组:(50,50).
有时,我调用一个返回另一个元组的函数,如(3,-5),它表示坐标的变化.
将更改值添加到坐标值的最佳方法是什么.如果我可以做一些像坐标+ =更改这样的东西会很好,但似乎只是将两个元组连接成类似(50,50,3,-5)的东西.而不是将第一个值添加到第一个值和第二个到第二个,并返回一个结果元组.
到目前为止,我一直在使用这种相当无聊的方法:coord =(coord [0] + change [0],coord [1] + change [1])
什么是更好,更简洁的方法来将两个相同长度的元组的值相加.如果元组具有任意长度或特别长的长度会使先前的方法更加无聊,那么知道如何做到这一点似乎尤为重要.
Joh*_*n Y 25
好吧,有一种方法
coord = tuple(sum(x) for x in zip(coord, change))
Run Code Online (Sandbox Code Playgroud)
如果您正在进行大量的数学运算,您可能需要使用NumPy进行调查,NumPy具有更强大的阵列支持和更好的性能.
Tri*_*ych 13
列表理解可能更具可读性,但这是另一种方式:
>>> a = (1,2)
>>> b = (3,4)
>>> tuple(map(sum,zip(a,b)))
(4,6)
Run Code Online (Sandbox Code Playgroud)
正如 John Y 所提到的,使用 numpy 这很容易。
import numpy as np
x1 = (0,3)
x2 = (4,2)
tuple(np.add(x1,x2))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15017 次 |
最近记录: |