我有一个作为坐标的元组列表:xy = [(x_1, y_1), (x_2, y_2), ...]和一个特定点xy_sp = [x_sp, y_sp]。我想计算每个点到所谓的“特定点”的距离,并创建一个形式为{coordinates_of_1st_point: distance_1, coordinates_of_2nd_point: distance_2, ...}的字典,然后也许我可以按值对字典进行排序。

我想用功能性的pythonic方法做到这一点。所以我做了:

import numpy as np
distances = list(map(lambda k: np.linalg.norm(np.asarray(k) - np.asarray(xy)), xy))


然后我刚刚创建了一个字典理解:

dict_distances = {k : v for k, v in zip(xy, distances)}


最后一点是我想以功能性方法处理地图和Lambda,但我不知道该怎么做。如果可以用一行代码完成所有操作,那将很有趣,尽管我认为它根本不可读,因此不太值得推荐。

任何建议都欢迎。

最佳答案

您不需要lambda,只需对dict的结果调用内置的zip

dict_distances = dict(zip(xy, distances))


zip返回的2元组构建映射。

关于python - 使用map和lambda模拟dict理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47516659/

10-11 22:16
查看更多