大佬们请帮我康康,一个关于排列组合的问题
大佬们,问题是这样的:我有两组数据,例如:
第一组数据 =
第二组数据 =
出于某种需要,我想弄第三组数据,第三组数据中的A、B、C、D分别可能来自第一组或者第二组
现在我想弄一个列表出来,列表中,以列表的形式包含了第三组数据的所有可能性,请问有没有比较简单可行的方法{:10_297:} 想学习学习{:10_297:} ,在此先谢谢各位大佬们啦!!!!!! from itertools import combinations as c
A = ['a', 'b', 'c', 'd']
B = ['e', 'f', 'g', 'h']
arr =
print(arr) 傻眼貓咪 发表于 2022-1-8 18:57
谢谢!!学到了!!!!!! 傻眼貓咪 发表于 2022-1-8 18:57
发现好像不太行,因为我的第三组数据里的A只能来自A1或者A2,这样排列出来效果不是那样的{:10_266:}{:10_266:} TGgan 发表于 2022-1-8 20:26
发现好像不太行,因为我的第三组数据里的A只能来自A1或者A2,这样排列出来效果不是那样的{:10_ ...
你的意思是 A1 或 A2 选其中一个,B1 或 B2 选其中一个,以此类推? TGgan 发表于 2022-1-8 20:26
发现好像不太行,因为我的第三组数据里的A只能来自A1或者A2,这样排列出来效果不是那样的{:10_ ...
A = ['A1', 'B1', 'C1', 'D1']
B = ['A2', 'B2', 'C2', 'D2']
C = )]
arr = [ for a in C for b in C for c in C for d in C]
print(arr) TGgan 发表于 2022-1-8 20:26
发现好像不太行,因为我的第三组数据里的A只能来自A1或者A2,这样排列出来效果不是那样的{:10_ ...
假如数组 A 或 B 长度不一定(例如你的问题给定数据组 4 个元素为一组),则用:# 任意长度数组 A 和 B 都可用此代码(但必须确保 A 和 B 长度一致)
A = ['A1', 'B1', 'C1', 'D1', 'E1']
B = ['A2', 'B2', 'C2', 'D2', 'E2']
C = )]
n = 2**(len(A))
m = n>>1
index = []
while m:
key = 1
temp = []
while len(temp) != n:
for i in range(m): temp.append(key)
key = 0 if key else 1
index.append(temp)
m >>= 1
index = )]
arr = []
for i in index:
temp = []
for k, j in enumerate(i):
temp.append(C)
arr.append(temp)
print(arr) 傻眼貓咪 发表于 2022-1-8 21:43
假如数组 A 或 B 长度不一定(例如你的问题给定数据组 4 个元素为一组),则用:
谢谢谢谢大佬,我一定好好研究,哈哈哈哈,我在应用中确实是一组6个数据{:10_254:} 傻眼貓咪 发表于 2022-1-8 18:57
{:5_105:} {:10_249:} {:5_95:} {:10_254:} {:10_254:} {:10_279:} {:10_316:} {:10_279:} {:10_256:} {:10_256:} {:10_279:} 解决就好
页:
[1]
2