我有一个嵌套列表,例如:
>>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: 如何判断列表的所有值是否包含在嵌套列表中,如果是,则打印嵌套列表的第一个条目。
答案 0 :(得分:0)
我认为人们应该记住bool([False]) == True
和bool([True]) == True
,所以当使用构造[any(...)]:
时任何人都可以确定此语句将是True