2011-03-09 106 views
15

如果我有一個列表,是否有任何方法來檢查它是否包含任何其他列表?確定列表是否包含其他列表

我的意思是說,我想知道,如果列表中有此晶格結構:[]相對於這種結構[[]]

所以,比較[1,2,3,4]到[1,[ 2,3],4]

這很複雜,因爲我有一個字符串列表。

好,phihag的解決方案似乎到目前爲止是工作,但我在做什麼是這樣的:

uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs)) 

,以扁平化的列表,如果有其他列表中了。 但是由於我的列表包含字符串,如果這是在已經扁平化的列表上完成的,我會得到原始列表中每個字符串的每個字符的列表。 這不是我一直在尋找的行爲。因此,在扁平化之前檢查是否需要扁平化列表。

+0

'如果有包含其他lists'和'比較...互相排斥。我建議你問另一個關於比較扁平列表或子列表的問題。如果您不確定措辭,請給出5個不同結果的比較例子。 – phihag 2011-03-09 20:32:24

回答

67
any(isinstance(el, list) for el in input_list) 
+2

非常優雅的答案,phihag!當之無愧+1。 – slezica 2011-03-09 20:27:40

+1

優秀的答案! – 2011-03-09 20:30:43

-4
lst1 in lst2 

如果iff lst1在lst2中,則返回True。

+2

請注意,列表中的包含檢查使用相等性而非身份。 – 2011-03-09 20:24:37

4

你甚至可以採取進一步的phihag的答案,如果你真的想在列表內的所有列表的列表

output_list = filter(lambda x: isinstance(x,list), input_list) 
相關問題