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

复制代码
# 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)

 

posted @   你说夕阳很美  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示