작은 프로그램을 작성하고 효율성을 높이려면 배열에 가장 가까운 위도와 경도를 찾을 수 있어야합니다.가장 가까운 위도와 경도를 찾습니다
tempDataList = [{'lat': 39.7612992 , 'lon': -86.1519681},
{"lat": 39.762241, "lon": -86.158436},
{"lat": 39.7622292, "lon": -86.1578917}]
tempLatList = []
tempLonList = []
for item in tempDataList:
tempLatList.append(item['lat'])
tempLonList.append(item['lon'])
closestLatValue = lambda myvalue: min(tempLatList, key=lambda x: abs(x - myvalue))
closestLonValue = lambda myvalue: min(tempLonList, key=lambda x: abs(x - myvalue))
print(closestLatValue(39.7622290), closestLonValue(-86.1519750))
내가 얻는 결과는 다음과 같습니다 :
는 다음과 같은 코드가 있다고 가정(39.7622292, -86.1519681)
은 (목록의 마지막 개체가이 예에서)입니다해야한다 무엇
(39.7622292, -86.1578917)
나는 단일 값의 가장 가까운 셀을 얻는 방법을 알고 있지만, 나는 람다 함수를 고려하고 싶다. 어쨌든 두 가지 값은 있지만 어떻게 확신 할 수있는 것은 아닙니다. 도움?
사용'min'을 dicts의 원래 목록에 -로 분리 없음 사용 두리스트 - 그리고 당신의 핵심 기능에서 피타고라스의 정리를 사용하십시오. –
가장 낮은 경도 값을 올바르게 얻고 있습니다. 당신은 그 값들을 분리하고 있습니다. 값을 분리하지 말고 함께 위도와 경도의 거리를 계산하십시오 *. –
그냥 유클리드 거리를 사용하십시오 -)) – marmeladze