gpt4 book ai didi

python - 在二维列表 python 上索引和打印正确值时出现问题

转载 作者:行者123 更新时间:2023-12-01 04:22:38 26 4
gpt4 key购买 nike

我有一个简单的二维列表,其中包含 x,y 对。我正在编写一个程序来查找两组点之间距离最短的点。

“值”列表包含所有距离,我非常确定它们是正确的距离。

我想打印出创建最小距离的两个点。打印出最小距离显然很容易,但是打印出两个点却给我带来了麻烦。

我需要跟踪哪些点集正在创建哪些距离。

我认为我可能必须重新编写这段代码并重新开始才能完成我想要的事情。但是,无论如何,我有办法达到这个结果吗?如果没有,我该怎么做?如何跟踪正在使用的索引?

代码:

multiD = [[1,3],
[-1,-1],
[1,1],
[2,0.5],
[2,-1],
[3,3],
[4,2],
[4,-0.5]]

def distance(x1, y1, x2, y2):
distance = ( (((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) ** 0.5)
return distance

values = []
for [x1,y1] in multiD:
for [x2,y2] in multiD:
if [x1,y1] != [x2,y2]:
diff = distance(x1,y1,x2,y2)
values.append(diff)

最佳答案

from itertools import combinations

points = [
[ 1, 3], [-1, -1], [ 1, 1],
[ 2, 0.5], [ 2, -1], [ 3, 3],
[ 4, 2], [ 4, -0.5]
]

def dist(pair):
(x1, y1), (x2, y2) = pair
return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5

def main():
pairs = combinations(points, 2)
closest = min(pairs, key=dist)
print("The closest pair is {} at {}.".format(closest, dist(closest)))

if __name__=="__main_":
main()

产生

The closest pair is ([1, 1], [2, 0.5]) at 1.118033988749895.

关于python - 在二维列表 python 上索引和打印正确值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com