Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以编程方式生成其他列表的组合列表_Python_List_Combinations_Dynamically Generated - Fatal编程技术网

Python 以编程方式生成其他列表的组合列表

Python 以编程方式生成其他列表的组合列表,python,list,combinations,dynamically-generated,Python,List,Combinations,Dynamically Generated,我想创建一个列表的可能组合列表(示例将更好地解释) 结果应该是 acf adf bcf bdf 列表的长度可以不同,变量列表中列表的长度也可以不同。如何以编程方式创建此/这些循环?(最好用Python或伪语言解释)您可以递归执行: def printCombos(arrays, combo): if len(arrays) == 0: print combo else: for i in arrays[0]: combo.append(i) pr

我想创建一个列表的可能组合列表(示例将更好地解释)

结果应该是

acf
adf
bcf
bdf

列表的长度可以不同,变量列表中列表的长度也可以不同。如何以编程方式创建此/这些循环?(最好用Python或伪语言解释)

您可以递归执行:

def printCombos(arrays, combo):
  if len(arrays) == 0:
    print combo
  else:
    for i in arrays[0]:
      combo.append(i)
      printCombos(arrays[1:], combo)
      combo.pop()

l=[['a','b'],['c','d'],['f']]
printCombos(l, [])
这就是为什么:


不要调用您的列表
list
。您正在隐藏
列表
类型。我知道,这只是一个示例,那么您的“combo”变量是什么?它是迄今为止看到的combo。它一开始只是一个空列表。谢谢!它还可以与[[“a”,“b”],[“c”,“d”],[“f”]一起使用,这太棒了!是的,在这方面也是一样的。我只是太懒了,没法输入所有的引号等等。
def printCombos(arrays, combo):
  if len(arrays) == 0:
    print combo
  else:
    for i in arrays[0]:
      combo.append(i)
      printCombos(arrays[1:], combo)
      combo.pop()

l=[['a','b'],['c','d'],['f']]
printCombos(l, [])
>>> lst = ['ab','cd','f']
>>> from itertools import product
>>> list(product(*lst))
[('a', 'c', 'f'), ('a', 'd', 'f'), ('b', 'c', 'f'), ('b', 'd', 'f')]
import itertools

list=[['a','b'],['c','d'],['f']]

for comb in itertools.product(*list):
  print ''.join(comb)
curlist = []

for firstobj in listoflists[0]:
    for secondobj in listoflists[1]:
        for lastobj in listoflists[2]:
            curlist.append(firstobj)
            curlist.append(secondobj)
            curlist.append(lastobj)
            print ','.join(curlist)