如何检查列表中的所有元素是否为整数

bob*_*123 1 python list python-3.x

如果我有一个列表,如:

List = [12,6,3,5,1.2,5.5] 
Run Code Online (Sandbox Code Playgroud)

有没有办法可以检查所有数字是否都是整数?我试过类似的东西

def isWhole(d): 
if (d%1 == 0 ) : for z in List return true.
Run Code Online (Sandbox Code Playgroud)

这显然是非常错误的.我能做什么?

jon*_*rpe 6

所以你想要整数和浮点数等于整数?

def is_whole(d):
    """Whether or not d is a whole number."""
    return isinstance(d, int) or (isinstance(d, float) and d.is_integer())
Run Code Online (Sandbox Code Playgroud)

正在使用:

>>> for test in (1, 1.0, 1.1, "1"):
    print(repr(test), is_whole(test))


1 True # integer 
1.0 True # float equal to integer
1.1 False # float not equal to integer
'1' False # neither integer nor float
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用all和将其应用于列表map:

if all(map(is_whole, List)):
Run Code Online (Sandbox Code Playgroud)

或者生成器表达式:

if all(is_whole(d) for d in List):
Run Code Online (Sandbox Code Playgroud)