2014-09-26 137 views
4

我有一个列表的列表,然后我从列表中提取最后一个元素。现在,如何知道它是str还是listdictint如何知道对象是str还是list或dict或int?

list2 = response_list[0][-1] 
print list2,type(list2) 
print "not executing" 
print list2 

我未能匹配,如果该元素是由下面的代码liststr

list2 = response_list[0][-1] 
    if type(list2) == str() : 
     print list2,type(list2) 
    elif type(list2) == list() : 
     print list2,type(list2) 

回答

10

Since Python 2.2,您应使用此代码:

if isinstance(list2, (str, list, dict)): 

isinstance()需要一个元组作为第二个参数,如果类型在元组中,则返回true

1

其实类型功能的作用类似于

>>> a = [] 
>>> type(a) 
<type 'list'> 
>>> f =() 
>>> type(f) 
<type 'tuple'> 

为了对比,你可以使用isinstance()函数返回True/False

list2 = response_list[0][-1] 
    if isinstance(list2,str): 
     print list2,type(list2) 
    elif isinstance(list2,list): 
     print list2,type(list2) 
0

可以重新布置这样的代码,

list2 = response_list[0][-1] 
if type(list2) == str: 
    print list2,type(list2) 
elif type(list2) == list: 
    print list2,type(list2) 
+0

这不是建议的匹配对象类型的方法。 – 2015-07-05 08:43:10

+0

是推荐使用'isinstance'功能。我回答了这个问题,就像你在这个问题上试过的一样遵循接受的答案方法。 – 2015-07-05 08:52:57

0

尝试下面的使用类型函数,很干净呀?

dict, str, tuple, int 

if type(d) is dict: 
    True 
相关问题