Python - 如何在for循环中检查布尔值?

And*_*dré 2 python for-loop

我没有关于如何做到这一点的线索.我有一个清单:

list_something = [5, 6, 8]
Run Code Online (Sandbox Code Playgroud)

我有一个方法is_valid()

def is_valid(number):
    return type(number) is int
Run Code Online (Sandbox Code Playgroud)

如果3个数字都是for循环中的所有整数,我怎样才能立即检查?

for item in list_something:
Run Code Online (Sandbox Code Playgroud)

在for循环结束时,我需要一个名为"all_list_something"的变量,其值为True或False.如果列表中的所有数字都是Integer,则值为True.如果只有一个不能为Integer,则该值为false.

有关实现这一目标的最佳途径的任何线索?

最好的祝福,

cmh*_*cmh 10

对于某些人来说,生成器理解可以提高地图的可读性.

all_list_something = all(is_valid(x) for x in list_something)
Run Code Online (Sandbox Code Playgroud)


Dav*_*son 8

你可以使用allmap:

all_list_something = all(map(is_valid, list_something))
Run Code Online (Sandbox Code Playgroud)

使用itertools.imap会允许它短路(意味着如果第一个元素无效,它永远不会检查其余元素):

import itertools
all_list_something = all(itertools.imap(is_valid, list_something))
Run Code Online (Sandbox Code Playgroud)