获取具有多边形结构的列表的最小值

2024-04-29 00:30:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个项目中,我有几个具有如下多边形值的列表:

[143788.505, 523767.385, 143788.519, 523767.065, 143791.926 523767.213,  143792.216 523760.528, 143804.22 523761.099, 143803.924 523766.718,  143800.893 523766.573]

列表中的第一个元素是X值,第二个是Y,第三个是X,第四个是Y,等等

如果我使用这样的函数,它将得到完整列表的最小值。如何得到x和y的最小值

def my_min(sequence):
    """return the minimum element of sequence"""
    low = sequence[0] # need to start with some value
    for i in sequence:
        if i < low:
            low = i
    return low

最小X为:143788.505 最小Y为:523760.528


Tags: ofthe项目函数元素列表returnmy
1条回答
网友
1楼 · 发布于 2024-04-29 00:30:49

设置

L = [143788.505, 523767.385, 143788.519, 523767.065, 143791.926, 523767.213, 143792.216, 523760.528, 143804.22, 523761.099, 143803.924, 523766.718, 143800.893, 523766.573]

如果您对坐标作为一个整体感兴趣,您可以重塑列表,将相应的XY值组合成元组。您可以通过zip实现这一点:

coords = list(zip(L[::2], L[1::2]))

[(143788.505, 523767.385),
 (143788.519, 523767.065),
 (143791.926, 523767.213),
 (143792.216, 523760.528),
 (143804.22, 523761.099),
 (143803.924, 523766.718),
 (143800.893, 523766.573)]

现在要分别找到具有最小值XY的坐标,请使用带有键的min,并将键设置为您感兴趣的元组的元素(0表示X,1表示Y):

>>> min(coords, key=lambda x: x[0])
(143788.505, 523767.385)              # coordinate with smallest x

>>> min(coords, key=lambda x: x[1])
(143792.216, 523760.528)              # coordinate with smallest y

如果不关心坐标,只关心值,请在列表的各个部分上调用min

>>> min(L[::2])
143788.505

>>> min(L[1::2])
523760.528

相关问题 更多 >