在 Python 中将 for loop 转换为 lambda/list 理解



我有一个列表,loc_combinations,长度为 91806 的唯一 ID 对,结构如下:

[(1,2), (1,3), 1,4)...(452, 454)]

我正在尝试将相同的函数distance_calculator应用于列表中的每对,该函数返回单个值,即距离。我能够使用 for 循环获得答案,但希望有人可以向我展示如何使用 Lambda 和列表理解来做到这一点。

这是 for 循环:

distance_list = []
for i in range(len(loc_combinations)): 
distance_list.append(distance_calculator(id1 = loc_combinations[i][0], id2 = loc_combinations[i][1]))

如果您定义了工作函数,则不需要 lambda 函数。作为列表推导的代码如下所示:

distance list = [distance_calculator(x[0], x[1]) for x in loc_combinations]
distance_list = [
distance_calculator(id1=x, id2=y)
for x, y in loc_combinations
]

最新更新