Python中的条件嵌套循环

时间:2019-06-25 23:44:16

标签: python python-3.x loops for-loop

我有一组不同的条件,这些条件将用1个,2个或3个不同的子列表填充一个列表。

我正在寻找一种编写可以运行的条件的方法:

  1. 对单个列表中的元素进行单个循环
  2. 两个子列表中元素的双重循环
  3. 对所有3个子列表中的元素进行三重循环

例如:

list1 = ['UK', 'USA', 'Austria', 'Canada']
list2 = ['001', '001', '99', '1001', '009', '002']
list3 = [100, 200, 300, 500, 1000]

list_total = [list1, list2, list3]

if list2 and list3 or list_total[1] and list_total[2] are both None:
   for elm in list1:
   ***do stuff***

if list2 or list_total[1] is None:
   for elm1 in list1:
   ***maybe do stuff if I want***
       for elm2 in list2:
       ***do stuff***

if all lists or list_total[1] and list_total[2] and list_total[3] are all not None:
   for elm1 in list1:
       for elm2 in list2:
       ***maybe do stuff if I want***
           for elm3 in list3:
           ***do stuff***

有什么办法吗?

我不能仅仅遍历列表中的所有元素以从中看到“创建”一个for循环。

1 个答案:

答案 0 :(得分:2)

您可能需要的是itertools.product

代码示例:

import itertools

list1 = ['UK', 'USA', 'Austria', 'Canada']
list2 = ['001', '001', '99', '1001', '009', '002']
# list3 = [100, 200, 300, 500, 1000]
list3 = None

list_total = [list1, list2, list3]

list_total = [l for l in list_total if l is not None]

for t in itertools.product(*list_total):
    print(t)

希望您可以从这里去。