问题:检查类型==列表在python中
我可能在这里放屁,但是我真的无法弄清楚我的代码出了什么问题:
for key in tmpDict:
print type(tmpDict[key])
time.sleep(1)
if(type(tmpDict[key])==list):
print 'this is never visible'
break
输出为<type 'list'>
if语句从不触发。有人可以在这里发现我的错误吗?
回答 0
您的问题是您list
之前在代码中已将其重新定义为变量。这意味着当您执行type(tmpDict[key])==list
if时会返回,False
因为它们不相等。
回答 1
您应该尝试使用 isinstance()
if isinstance(object, list):
## DO what you want
就你而言
if isinstance(tmpDict[key], list):
## DO SOMETHING
详细说明:
x = [1,2,3]
if type(x) == list():
print "This wont work"
if type(x) == list: ## one of the way to see if it's list
print "this will work"
if type(x) == type(list()):
print "lets see if this works"
if isinstance(x, list): ## most preferred way to check if it's list
print "This should work just fine"
编辑1:之间的差异isinstance()
和type()
为什么isinstance()
要检查最偏爱的方式是,isinstance()
除了检查的子类,而type()
没有。
回答 2
这似乎为我工作:
>>>a = ['x', 'y', 'z']
>>>type(a)
<class 'list'>
>>>isinstance(a, list)
True
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。