我有一个包含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.
好的,我已经成功地将一个列表变成了一个二维数组。唯一的问题是输出只索引一次,所以基本上,如果我想将每个列表中的10个元素添加到一个二维数组中,那么这个二维数组将只有一个包含“n”个元素的索引。 例如 我愿意 相反,它正在返回: 我接受了以下建议:将ArrayList转换为包含不同长度数组的2D数组 这是我的代码: 我正在使用数据提供者(DataProviders)和TestNG,它们需要返回一个二
问题内容: 我正在读取文件并将其存储在t1中。如何访问t1中的元素?当我尝试打印时,我得到的是地址而不是值。还有和之间的区别是什么? 输出: 问题答案: String []是一个字符串数组,因此其未如您所愿打印的原因,请尝试: 或更简洁: 或者更好:
我正在尝试读取文件的每一行,它应该是以下格式:- 然后将该行拆分为各个字段,并进行任何必要的转换(从字符串到int或double)。然后,我将使用静态工厂方法创建<code>salaredemployee/HourlyEmployee。 我想循环员工列表,并在控制台上打印出一个表格,列出每个员工的姓名、类型、工时和总工资。每个列都需要对齐,字符串-左对齐,数字-右对齐。所有货币列都应该有2个美分位
我试着运行这个: 但是得到这个错误: 回溯(最后一次调用): 文件“C:\Users\Shakh\Desktop\Hello3.py”,第4行,在 打印(“Hallo”,sys.argv[1]) 索引器:列表索引超出范围
我试着做一个Loto游戏,我必须生成一张随机的卡,在第一个collum数字从1-9,第二个10-19一直到90。这张牌的另一个规则是,每行的随机位置上只能有5个数字,这就是我遇到的麻烦。 我从这个开始在每个collum中添加数字: 然后在数组的每一行的一个数字位置上放5个数字我试过这样做: 第三个也一样。 输出: 0 18 0 0 46 0 61 72 88 0 18 0 31 0 55 0 0
我正在尝试从CSV文件导入数据。我对导入过程没有任何问题。但是,当我将一个导入的数组从CSV文件传递到另一个类中的另一个方法时,我无法从数组中获取和打印值。我得到了以下打印:[1,2.0,[[Ljava.lang.字符串;@1e81f4dc]。“1”和“2”是导入值,没有问题。 我真正的麻烦是获取并打印“[Ljava.lang.String;@1e81f4dc]”中的值。 如果您能帮助了解如何获取