说我有一个数字列表.如何检查列表中的每个项目是否为int?
我已经四处寻找,但未能找到任何相关内容.
for i in myList:
result=isinstance(i, int)
if result == False:
break
Run Code Online (Sandbox Code Playgroud)
会起作用,但在我看来看起来非常丑陋和不熟悉.
有没有更好的(更pythonic)方式这样做?
Dra*_*ric 41
>>> my_list = [1, 2, 3.25]
>>> all(isinstance(item, int) for item in my_list)
False
>>> other_list = range(3)
>>> all(isinstance(item, int) for item in other_list)
True
>>>
Run Code Online (Sandbox Code Playgroud)
以下陈述应该有效.它使用any内置和生成器表达式:
any(not isinstance(x, int) for x in l)
Run Code Online (Sandbox Code Playgroud)
如果列表中存在非int,则返回true.例如:
>>> any(not isinstance(x, int) for x in [0,12.])
True
>>> any(not isinstance(x, int) for x in [0,12])
False
Run Code Online (Sandbox Code Playgroud)
该all内置也可以完成相同的任务,而有些人可能会认为这是使稍微更有意义(见德拉甘的答案)
all(isinstance(x,int) for x in l)
Run Code Online (Sandbox Code Playgroud)