我有一个作为坐标的元组列表: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/