0

我有一个嵌套列表,例如:

>>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:如何判断列表的所有值是否包含在嵌套列表中,如果是,则打印嵌套列表的第一个条目。

4

1 回答 1

0

我认为一个人应该记住这两者bool([False]) == Truebool([True]) == True所以当使用构造时[any(...)]:任何人都可以肯定地说这个语句将是True

于 2013-06-27T20:40:14.870 回答