更简洁的方式实现多层for循环嵌套

发布时间 2023-06-26 10:04:56作者: 你说夕阳很美
# coding=utf-8
phone = ['iPhone', 'HuaWei', 'Mi']
number = [1, 2, 3]
color = ['', '']
for p in phone:
    for n in number:
        for c in color:
            print(f'{p}{n}{c}', end='  ')

# 调用product实现元素组合,替代for循环
import itertools
for p, n, c in itertools.product(phone, number, color):
    print(f'{p}{n}{c}', end='  ')

#iPhone1白  iPhone1黑  iPhone2白  iPhone2黑  iPhone3白  iPhone3黑  HuaWei1白  HuaWei1黑  HuaWei2白  HuaWei2黑  HuaWei3白  HuaWei3黑  Mi1白  Mi1黑  Mi2白  Mi2黑  Mi3白  Mi3黑  
#iPhone1白  iPhone1黑  iPhone2白  iPhone2黑  iPhone3白  iPhone3黑  HuaWei1白  HuaWei1黑  HuaWei2白  HuaWei2黑  HuaWei3白  HuaWei3黑  Mi1白  Mi1黑  Mi2白  Mi2黑  Mi3白  Mi3黑  

以元组的形式,根据输入的可遍历对象生成笛卡尔积,与嵌套的for循环类似。

repeat是一个关键字参数,指定重复生成序列的次数

详解Python中的排列组合生成器 (qq.com)

详解Python中的itertools模块 - 知乎 (zhihu.com)

itertools: 完美的python内置库 - 知乎 (zhihu.com)