我有一个清单:
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的方式迭代地做到这一点?
你可以使用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)