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

Python 获取具有多边形结构的列表的最小值,python,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,等等 如果我使用这样的函数,它将得到完整列表的最小值。如何获

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

[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
def my_min(顺序):
“”“返回序列的最小元素”“”
low=序列[0]#需要从某个值开始
对于顺序中的i:
如果i<低:
低=i
低回报
最小X值为:143788.505 最小Y值为:523760.528


如果您对坐标作为一个整体感兴趣,您可以重塑列表,将相应的
X
Y
值组合成元组。您可以使用
zip

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

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


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

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

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

为什么不使用
min
功能<代码>最小值(我的列表[::2]),
最小值(我的列表[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)]
>>> 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(L[::2])
143788.505

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