2011-03-09 71 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) 
相关问题