[英]What should I use instead of isinstance()
我必须解析一些由列表组成的对象。 但是它可以在list内的list内有list: obj=[[smth1],[[smth2],[smth3]]]
每个smthX
也可以是一个列表。
我正在寻找一个我知道的“第二层列表”中的值。 在我的示例中,它可能在[[smth2],[smth3]]
我现在正在做的事情是迭代我的对象,并测试我正在迭代的对象是否正确。 如果是这样,我会寻找自己的价值。
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()
之前,我曾尝试在try / except中测试list [0]返回了我什么,但感觉甚至更糟。 还有其他方法可以以干净的方式实现这一目标吗? (我无法处理我要处理的obj
格式)
如果您要先查找包含两个项目(列表)的子列表,则需要检查长度(如果您确定所有项目都是列表),然后使用isinstance()
子列表中的所有项目是否都是列表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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.