计算距离列表

Cai*_*dus 0 python

我有一个清单:

my_list = [A,B,G,X,F,D]
Run Code Online (Sandbox Code Playgroud)

列表中的每个字母都是空间 (x,y) 中的某个点。

我有一个函数来计算两点之间的距离:

dist = distance(A,B)
Run Code Online (Sandbox Code Playgroud)

我需要计算列表中相邻点之间的距离列表:

list_of_distances = [distance(A,B), distance(B,G), distance(G,X), distance(X,F), distance(F,D)]
Run Code Online (Sandbox Code Playgroud)

问题是:如何以最pythonic的方式迭代地做到这一点?

rus*_*ro1 5

你可以使用zip内置函数:

dist = [distance(a, b) for a, b in zip(my_list, my_list[1:])]
Run Code Online (Sandbox Code Playgroud)

或者按照@DaniMesejo 的建议:

 dist = list(map(distance, my_list, my_list[1:]))
Run Code Online (Sandbox Code Playgroud)

  • map 可以接收多个迭代,因此您可以执行 map(distance, my_list, my_list[1:]) (4认同)