2024-04-17 20:05:53 发布
网友
我有一个点对象列表,每个点对象都有x和y属性。我希望计算最大值x和最大值y,而不需要重复两次。我可以这样做:
max_x = max(points, key=lambda p: p.x) max_y = max(points, key=lambda p: p.y)
当然,这会重复两次。我可以手动完成,但由于找到最大值非常简单,我担心这会增加混乱。有没有办法用内置的max函数来实现这一点?你知道吗
max
不,不是真的。你已经拥有的是最好的方法,只需给max打两次电话。你知道吗
不管怎样,你可以这样想:不管你在每次迭代中迭代一次并进行两次比较,还是迭代两次并进行一次比较,最终都不会有太大的差别。你知道吗
假设x和y位于一个二维数组中,则可以使用numpy:
x
y
import numpy as np points_array = np.array([(p.x,p.y) for p in points]) xmax, ymax = points_array.max(axis=0)
但这意味着你必须重新构建你的数据。也就是说,如果这是你需要numpy的唯一原因,我想我会坚持使用杂物。你知道吗
不,不是真的。你已经拥有的是最好的方法,只需给
max
打两次电话。你知道吗不管怎样,你可以这样想:不管你在每次迭代中迭代一次并进行两次比较,还是迭代两次并进行一次比较,最终都不会有太大的差别。你知道吗
假设
x
和y
位于一个二维数组中,则可以使用numpy:但这意味着你必须重新构建你的数据。也就是说,如果这是你需要numpy的唯一原因,我想我会坚持使用杂物。你知道吗
相关问题 更多 >
编程相关推荐