"()"
所以我有一组测试用例,它给了我两个带数字的列表。我的任务是用给定的列表计算欧氏距离。但是,我没有得到正确的结果。我得到了3.7416573867739413,3.0,2.0和2.0。这是我到目前为止所做的,我不确定我做错了什么。
答案 0 :(得分:4)
问题在于:
QUOTIENTS OF EACH DIVISION
▼ ▼ ▼
23÷4 = 5÷4 = 1÷4 = 0
3 1 1
▲ ▲ ▲
REMAINDERS OF EACH DIVISION
因此,对于abs $t1, $t1
中的每个点,您正在访问 for x in alist:
for y in blist:
中的所有点。例如,对于alist
和blist
,此循环会生成对alist = [1, 2, 3]
但您要做的只是查看blist = [4, 5, 6]
。这可以通过zip功能实现。如果迭代(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)
,它将迭代这些点。您可以通过执行
(1, 4), (2, 5), (3, 6)
因此,如果您使用zip上的单个循环更改嵌套循环,它将计算正确的距离。
zip(alist, blist)