无论如何总结两点不使用" class point"
输入
a= (2,5)
b= (3,4)
c= a +b
输出
(5 , 9)
答案 0 :(得分:2)
您可以使用理解加上zip
:
c = tuple(a_n + b_n for a_n, b_n in zip(a, b))
如果你需要做很多事情(更不用说效率稍低),这显然很麻烦。如果你要做很多这样的计算,那么你最好使用像numpy这样的库,它允许将数组添加为第一类对象。
import numpy as np
a = np.array([2, 5])
b = np.array([3, 4])
c = a + b
如果你走numpy路线,转换为numpy数组有点贵,所以我建议你把你的点存储为数组而不是元组。
答案 1 :(得分:1)
如果您想要一种功能性方法:
t = tuple(map(sum, zip(a, b)))
答案 2 :(得分:1)
import numpy
a = (2,5)
b = (3,4)
c = tuple(numpy.asarray(a) + numpy.asarray(b)) #Tuple convert is just because this is how your output defined. you can skip it...
答案 3 :(得分:1)
复数是伪装的(2-)元组:
>>> a = 2+5j
>>> b = 3+4j
>>> c = a + b
>>> c
(5+9j)
答案 4 :(得分:0)
我的解决方案:
reduce(lambda x, y: (x[0] + y[0], x[1] + y[1]), zip(a, b))