Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试变量是否具有“类型”;元组列表“;_Python - Fatal编程技术网

Python 测试变量是否具有“类型”;元组列表“;

Python 测试变量是否具有“类型”;元组列表“;,python,Python,如何检查变量是否为元组列表 isinstance仅显示变量是列表还是元组,但我不知道如何检查嵌套结构。您可以使用all和instanceof的组合: >>> a = [(1,2),(3,5)] >>> all(isinstance(item, tuple) for item in a) True >>> b = [(1,2),(3,5), "string"] >>> all(isinstance(item, tuple) f

如何检查变量是否为元组列表


isinstance仅显示变量是列表还是元组,但我不知道如何检查嵌套结构。

您可以使用
all
instanceof
的组合:

>>> a = [(1,2),(3,5)]
>>> all(isinstance(item, tuple) for item in a)
True
>>> b = [(1,2),(3,5), "string"]
>>> all(isinstance(item, tuple) for item in b)
False
>>>

您可以使用
all
instanceof
的组合:

>>> a = [(1,2),(3,5)]
>>> all(isinstance(item, tuple) for item in a)
True
>>> b = [(1,2),(3,5), "string"]
>>> all(isinstance(item, tuple) for item in b)
False
>>>
使用
all

>>> lit=[(1,),(2,),(3,)]
>>> lin=[(1,),(2,),(3,),4]

>>> all(isinstance(e,tuple) for e in lit)  
True
>>> all(isinstance(e,tuple) for e in lin)  
False
您还可以在筛选器中对lambda求反,以测试和查找非元组的元素:

>>> filter(lambda e: not isinstance(e, tuple), lit)
[]
>>> filter(lambda e: not isinstance(e, tuple), lin)
[4]
或者使用列表理解查找非元组的索引:

>>> [i for i, e in enumerate(lit) if not isinstance(e, tuple)]
[]
>>> [i for i, e in enumerate(lin) if not isinstance(e, tuple)]
[3]
如果使用
filter
或列表理解,则空列表也是“falsy”,因此,如果要查找非元组的实际元素,则空列表既可以是测试,也可以是结果

使用
all

>>> lit=[(1,),(2,),(3,)]
>>> lin=[(1,),(2,),(3,),4]

>>> all(isinstance(e,tuple) for e in lit)  
True
>>> all(isinstance(e,tuple) for e in lin)  
False
您还可以在筛选器中对lambda求反,以测试和查找非元组的元素:

>>> filter(lambda e: not isinstance(e, tuple), lit)
[]
>>> filter(lambda e: not isinstance(e, tuple), lin)
[4]
或者使用列表理解查找非元组的索引:

>>> [i for i, e in enumerate(lit) if not isinstance(e, tuple)]
[]
>>> [i for i, e in enumerate(lin) if not isinstance(e, tuple)]
[3]

如果使用
filter
或列表理解,则空列表也是“falsy”,因此,如果要查找非元组的实际元素,则空列表既可以是测试,也可以是结果

因为Python是动态类型的,所以您必须检查列表中的每个元素。因为Python是动态类型的,所以您必须检查列表中的每个元素。