Python|二维平面中水平线上的最远点
有时,在竞争性编程中,我们可能会遇到几何领域的问题,并且使用 xy 坐标系。元组列表可用于存储相同的内容。与此同时,可能存在一个问题,即我们需要 x 轴的最大值与 y 轴相似的点,即水平线上的最远点。让我们讨论一些讨论这个问题的方法。
方法:使用列表理解 + max()
这是一种通用的蛮力方法,用于获取公共 y 轴的最大 x 轴点,使用列表理解作为 1 行。 max()
用于查找 x 轴元素的最大值。
# Python3 code to demonstrate working of
# Farthest point on horizontal lines in 2D plane
# Using list comprehension + max()
from collections import defaultdict
# initializing list
test_list = [(1, 6), (4, 6), (2, 6), (6, 8), (1, 8), (2, 9)]
# printing original list
print("The original list is : " + str(test_list))
# Using list comprehension + max()
# Farthest point on horizontal lines in 2D plane
temp = defaultdict(list)
for key, val in test_list:
temp[val].append(key)
res = [(key, val) for key, val in test_list if max(temp[val]) == key]
# Printing result
print("The list after filtering just maximum points on lines : " + str(res))
输出 :
The original list is : [(1, 6), (4, 6), (2, 6), (6, 8), (1, 8), (2, 9)]
The list after filtering just maximum points on lines : [(4, 6), (6, 8), (2, 9)]