【问题标题】:Convert for loop to lambda/list comprehension in Python在 Python 中将 for 循环转换为 lambda/list 理解
【发布时间】:2020-05-24 04:36:29
【问题描述】:

我有一个列表 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]))

【问题讨论】:

    标签: python loops lambda list-comprehension


    【解决方案1】:

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

    distance list = [distance_calculator(x[0], x[1]) for x in loc_combinations]
    

    【讨论】:

    • 或者distance_calculator(*x)如果你很讨厌
    【解决方案2】:
    distance_list = [
        distance_calculator(id1=x, id2=y)
        for x, y in loc_combinations
    ]
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多