You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含嵌套for循环与if判断的代码转换为列表推导式?

将嵌套循环转换为列表推导式的方案

你的代码核心是遍历所有i < b的索引组合,当两个名字的相似度达标时,把对应ID追加到指定列表中。由于列表推导式主要用于生成新列表,无法直接执行原地修改的append操作,我们可以分两步实现等价逻辑:

  1. 用列表推导式筛选出所有符合条件的索引与ID组合:
matches = [(b, ID[i]) 
           for i in range(xy-1) 
           for b in range(i+1, xy) 
           if fuzz.token_set_ratio(Names[i], Names[b]) >= 90]
  1. 遍历筛选结果,更新FuzzNames列表:
for b, id_val in matches:
    FuzzNames[b].append(id_val)

说明

  • 原代码中的else: pass可以直接省略,因为条件不满足时无需执行任何操作
  • 这种方式既利用了列表推导式的简洁性,又完整保留了原代码的业务逻辑

内容的提问来源于stack exchange,提问作者Abdulrahman Hocaoglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:39:18