使用地图和lambda模仿命令理解



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

正是我想以功能性的方法使用地图和lambdas来做的最后一点,但我不知道该怎么做。如果可以在一系列代码线上完成所有操作,那将很有趣,尽管我认为它根本不可读取,因此不是很适合。

欢迎任何建议。

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

dict_distances = dict(zip(xy, distances))

构建由zip返回的2木材的映射。

最新更新