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)