我必须解析一些由列表组成的对象。但它可以列在列表中的列表中:obj=[[smth1],[[smth2],[smth3]]]
每个smthX
也可以是一个列表。
我正在寻找一个我知道在“第二层列表”中的值。在我的示例中,它可能位于[[smth2],[smth3]]
我现在正在做的是迭代我的对象,并测试我正在迭代的是一个列表awell。如果是的话,我会寻找自己的价值。
for list in obj :
if isinstance(list, obj) :
for souslist in list :
I LOOK FOR MY VALUE
但是我到处都在阅读(http://canonical.org/~kragen/isinstance/很多stackoverflow线程)isinstance()
的使用只适用于特殊场合(我的使用看起来不像特殊场合)
在使用isinstance()
之前,我正在测试哪个列表[0]在试一试/除外但是感觉甚至是wronger。是否有其他方式以干净的方式实现这一目标? (我对obj
我必须处理的格式没有任何影响力。
答案 0 :(得分:1)
如果您要查找首先关闭两个项目(列表)的子列表,您需要检查长度(如果您确定所有项目都是列表),那么检查子列表中的所有项目是否都是列表使用isinstance()
for sub in obj:
if len(sub) == 2 and all(isinstance(i, list) for i in sub): # you can add " and isinstance(sub, list)" if you are not sure about the type of sub
look_val(sub)