我需要对 point3 值使用 3 个数学运算函数。我想知道是否有人可以阐明一种更好地以更简洁和简洁的方式编写这些函数的方法。
谢谢。
ptA = [10.0, 20.0, 30]
ptB = [50, 50 ,50]
percent = .50
def addPoint3(ptA,ptB):
idA = ptA[0] + ptB[0]
idB = ptA[1] + ptB[1]
idC = ptA[2] + ptB[2]
return [idA,idB,idC]
def subtractPoint3(ptA,ptB):
idA = ptA[0] - ptB[0]
idB = ptA[1] - ptB[1]
idC = ptA[2] - ptB[2]
return [idA,idB,idC]
def percentagePoint3(ptA,percentage):
idA = ptA[0] * percentage
idB = ptA[1] * percentage
idC = ptA[2] * percentage
return [idA,idB,idC]
add = addPoint3(ptA,ptB)
sub = subtractPoint3(ptA,ptB)
per = percentagePoint3(ptA,percent)
print add,sub,per
请您参考如下方法:
您可以使用 zip和 list comprehensions来简化这些。例如:
def addPoint3(ptA, ptB):
return [a+b for a, b in zip(ptA, ptB)]
或
def percentagePoint3(ptA, percentage):
return [pt * percentage for pt in ptA]
您也可以考虑实现一个类,而不是列表,这样您就可以将它们定义为实例方法(有关示例,请参阅 Ricardo Cárdenes 的回答)。
