我有一个嵌套列表,例如:
>>l = [[['bcsA', 'F'], ['bcsB', 'F'], ['bcsC', 'R']], [['bcsE', 'R'], ['bcsF', 'R']]]
>>n = [['GROUP A'], [[['bcsQ', 'F'], ['bcsA', 'F'], ['bcsB', 'F'], ['bcsZ', 'F'], ['bcsC', 'F']], [['yhjK', 'R']], [['yhjK', 'F']], [['bcsC', 'R'], ['bcsZ', 'R'], ['bcsB', 'R'], ['bcsA', 'R'], ['bcsQ', 'R']], [['bcsC', 'F'], ['bcsZ', 'F'], ['bcsB', 'F'], ['bcsA', 'F'], ['bcsQ', 'F']]]],
[[['GROUP A'], [[['bcsA', 'F'], ['bcsB', 'F'], ['bcsC', 'R']], [['bcsE', 'R'], ['bcsF', 'R']], [['yhjK', 'F']]]],
所以我希望做的是,如果嵌套列表在另一个嵌套列表的同一个列表[['bcsA', 'F'], ['bcsB', 'F'], ['bcsC', 'R']]
中[['bcsE', 'R'], ['bcsF', 'R']]
找到,那么它会给我第一个条目。
希望输出是GROUP B
.
l
每次我通过程序时,列表都会有所不同。
我尝试了一堆变体:
>>>for x in n:
>>> if all(e in x for e in l):
>>> print n[n.index(x)][0]
我认为它正在做的是,如果嵌套列表中的各个项目在l
任何地方,n
那么它会给我它们在 GROUP A 但实际上输出应该是 GROUP B。我也尝试过不使用该all()
语句。我觉得这是一件简单的事情,但我无法弄清楚。我希望这是有道理的。感谢您的任何帮助!
tl;dr:如何判断列表的所有值是否包含在嵌套列表中,如果是,则打印嵌套列表的第一个条目。