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
的任何地方,然後它會給我說,他們是在組A,但真的輸出應該是GROUP B 我已經嘗試過,沒有all()
聲明。我覺得這是一件簡單的事情,但我無法弄清楚。我希望這是有道理的。感謝您的任何幫助!
tl; dr: 如何判斷列表中的所有值是否都包含在嵌套列表中,如果是,則打印嵌套列表的第一個條目。
你爲什麼要在這裏使用括號'如果[所有(E x中的e in l)]'?我的意思是爲什麼不是所有的(e在l中爲x) – oleg
@Binnie,你能正確地格式化你的代碼嗎? – Oz123
@Binnie,你可以讓你的例子更短,更容易閱讀? – oleg