在python中,测试变量是否包含列表或元组的最佳方法是什么?(即。一组)
isinstance()是否如这里所建议的那样邪恶?http://www.canonical.org/~kragen/isinstance/
更新:我想要区分列表和字符串的最常见原因是,当我有一些无限深嵌套的字符串列表的列表的列表的树/数据结构时,我正在用递归算法探索,我需要知道什么时候我已经碰到了“叶”节点。
在python中,测试变量是否包含列表或元组的最佳方法是什么?(即。一组)
isinstance()是否如这里所建议的那样邪恶?http://www.canonical.org/~kragen/isinstance/
更新:我想要区分列表和字符串的最常见原因是,当我有一些无限深嵌套的字符串列表的列表的列表的树/数据结构时,我正在用递归算法探索,我需要知道什么时候我已经碰到了“叶”节点。
当前回答
另一个简单的方法来确定一个变量是列表还是元组,或者检查变量类型:
def islist(obj):
if ("list" in str(type(obj))):
return True
else:
return False
其他回答
另一种方法是将isinstance与typing一起使用。
from typing import List, Tuple
>> isinstance([1,2], Tuple)
False
>> isinstance([1,2], List)
True
另一个简单的方法来确定一个变量是列表还是元组,或者检查变量类型:
def islist(obj):
if ("list" in str(type(obj))):
return True
else:
return False
在Python 2.8中,type(list) is list返回false 我建议用这种可怕的方式进行比较:
if type(a) == type([]) :
print "variable a is a list"
(至少在我的系统上,在Mac OS X Yosemite上使用anaconda)
if type(x) is list:
print 'a list'
elif type(x) is tuple:
print 'a tuple'
else:
print 'neither a tuple or a list'
将参数记录为一个序列,并将其作为一个序列使用。不要检查类型。