我有一组不同的条件,这些条件将用1个,2个或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循环。
答案 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)
希望您可以从这里去。