作业帮 > 综合 > 作业

python组合问题有一个二维数列list=[['a','b'],['c','d','e'],'f',['g','h',

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 04:55:13
python组合问题
有一个二维数列list=[['a','b'],['c','d','e'],'f',['g','h','i','j']], 怎么得到list[0], list[1], list[2], list[3]的所有组合情况,如
result=[[a, c, f, g], [a, d, f, g], [a, e, f, g], [a, c, f, h], [a, d, f, h] ......]
这个只是一个例子,实际中,我的list有800多项,每项有2-4个元素。
哪位大虾知道怎么做啊
python组合问题有一个二维数列list=[['a','b'],['c','d','e'],'f',['g','h',
a = [['a','b'],['c','d','e'],'f',['g','h','i','j']]
for i in range(len(a)):
if isinstance(a[i],str):
a[i] = [a[i]]

anum = [len(i) for i in a]
x = []
for i in range(int(''.join(map(str,anum)))):
for j in zip(list(str(i).zfill(len(a))),anum):
if int(j[0]) >= j[1]:
break
else:
x.append(list(map(int,list(str(i).zfill(len(anum))))))
temp = []
c = []
for i in x:
temp.clear()
for j,k in enumerate(i):
temp.append(a[j][k])
else:
c.append(temp)
print(c)