Python中如何将两个列表做笛卡尔积并拼接为指定格式列表
Python 风格实现方案
下面是两种符合Python惯用写法的实现,比你当前的嵌套循环写法更简洁,执行效率也更高:
方案1:双层列表推导式(无需引入额外依赖,首选方案)
直接用列表推导式替代临时列表+嵌套循环的写法,代码量少可读性强:
first_list = [f"{s}:{f}" for f in first_list for s in second_list]
注意:你的原伪代码循环顺序写反了,会导致输出顺序和预期不符,上述代码已经调整了循环顺序,输出完全匹配你给出的预期结果。
方案2:使用itertools.product实现(适合明确体现笛卡尔积语义、或后续要扩展多列表笛卡尔积的场景)
如果希望代码明确体现笛卡尔积的计算逻辑,可以用Python标准库的itertools.product工具:
from itertools import product first_list = [f"{s}:{f}" for f, s in product(first_list, second_list)]
两种方案都使用了Python 3.6+版本推荐的f-string做字符串格式化,比用+拼接字符串的写法更易读,性能也更优,同时不需要额外声明临时变量,代码更简洁。
内容的提问来源于stack exchange,提问作者cdub
相关产品推荐
相关产品推荐

