确定列表是否包含其他列表

Ram*_*amy 17 python

如果我有一个列表,有没有办法检查它是否包含任何其他列表?

我的意思是说,我想知道一个列表是否有[]这个结构:与这个结构相反[[]]

所以,比较[1,2,3,4]和[1,[2,3],4]

由于我有一个字符串列表,这很复杂.

好吧,phihag的解决方案似乎工作到目前为止,但我正在做的是:

uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))
Run Code Online (Sandbox Code Playgroud)

如果列表中包含其他列表,则为了压缩列表.但由于我的列表包含字符串,如果在已经展平的列表上完成,我会得到原始列表中每个字符串的每个字符的列表.这不是我想要的行为.所以,检查是否需要在展平之前将列表弄平,这是必要的.

phi*_*hag 89

any(isinstance(el, list) for el in input_list)
Run Code Online (Sandbox Code Playgroud)

  • 非常优雅的答案,phihag!当之无愧+1. (4认同)

Nat*_*ate 5

如果您实际上想要列表中所有列表的列表,则可以进一步采用phihag的答案:

output_list = filter( lambda x: isinstance(x,list), input_list)
Run Code Online (Sandbox Code Playgroud)