从多维矩阵中筛选出符合要求的数值


a = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
b=[[['1','A']], [['1', '2']], [['1', '3']],   [['1', '2'], ['1', 'A']],[['1', '2'], ['1', '3'], ['2', 'A']], [['1', '2'], ['1', 'A'], ['2', '3'], ['2', 'B']]]
#比如 
# b[4]:[['1', '2'], ['1', '3'], ['2', 'A']];
# 找出b[4]中纯数字的列表['1', '2'], ['1', '3'];
#筛选['1', '2'], ['1', '3']中每个数字:比如筛选['1', '2'],if '1'在b[4]中没有和字母组合 and 如果'2'在b[4]中没有和字母组合,那么就删除b[4]
#b中字母是从a中随机抽取的一个或者几个。b列表维数是固定的。

你的问题越来越刁钻了哈哈,本来不打算写了的,但是好像又没人写,最后是只保留了b[0],不知道符不符合你的需求
参考代码:

a = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
b=[[['1','A']], [['1', '2']], [['1', '3']],   [['1', '2'], ['1', 'A']],[['1', '2'], ['1', '3'], ['2', 'A']], [['1', '2'], ['1', 'A'], ['2', '3'], ['2', 'B']]]

c=[]
for i in b:
    s = set()
    for j in i:
        if j[0] not in a and j[1] not in a:
            s.add(j[0])
            s.add(j[1])
    flag = 1
    for k in s:
        for j in i:
            if k in j and j[0] not in a and j[1] not in a:
                flag = 0
                break
    if flag == 1:
        c.append(i)
b = c
print(b)

img