首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同数量的嵌套for循环

不同数量的嵌套for循环
EN

Stack Overflow用户
提问于 2020-01-06 16:23:06
回答 2查看 88关注 0票数 2

目前我有以下问题。

一方面,有一个可变数量的列表,字符串作为元素,另一方面,有变化,其中的各个元素的列表需要链接。

根据list_order规范,一个列表中的每个元素应该与另一个列表中的每个元素组合。你得到了list_result。如果您知道有多少个列表,那么就用嵌套的for循环来解决它。但是,如果列表的数量不同,我该如何完成呢?我也尝试过递归,但没有起作用。

代码语言:javascript
复制
list_a = ['A', 'B', 'C']
list_b = ['H', 'I', 'J', 'K', 'L']
list_c = ['1', '2']

list_order = [['list_a', 'list_b', 'list_c'], ['list_b', 'list_c']]

list_result = [['AH1', 'AH2', 'AI1', 'AI2', ...], ['H1', 'H2', 'I1', 'I2', ...]]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-06 16:33:57

使用itertools.product

代码语言:javascript
复制
from itertools import product as pd
list_result = [[''.join(k) for k in pd(*[eval(i) for i in j])] for j in list_order]
print(list_result)

输出

代码语言:javascript
复制
[['AH1', 'AH2', 'AI1', 'AI2', 'AJ1', 'AJ2', 'AK1', 'AK2', 'AL1', 'AL2', 'BH1', 'BH2', 'BI1', 'BI2', 'BJ1', 'BJ2', 'BK1', 'BK2', 'BL1', 'BL2', 'CH1', 'CH2', 'CI1', 'CI2', 'CJ1', 'CJ2', 'CK1', 'CK2', 'CL1', 'CL2'], ['H1', 'H2', 'I1', 'I2', 'J1', 'J2', 'K1', 'K2', 'L1', 'L2']]
票数 3
EN

Stack Overflow用户

发布于 2020-01-06 16:32:32

我已经将list_order更改为表示列表中的不分符。

代码语言:javascript
复制
from itertools import product

list_a = ['A', 'B', 'C']
list_b = ['H', 'I', 'J', 'K', 'L']
list_c = ['1', '2']

lists = [list_a, list_b, list_c]

list_order = [[0, 1, 2], [1, 2]]

for order in list_order:
    current_lists = [lists[index] for index in order]
    for tpl in product(*current_lists):
        print("".join(tpl))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59615546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档