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

时间:2013-01-06 17:10:06

标签: python for-loop

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

list_something = [5, 6, 8]

我有一个方法is_valid()

def is_valid(number):
    return type(number) is int

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

for item in list_something:

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

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

最诚挚的问候,

3 个答案:

答案 0 :(得分:10)

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

all_list_something = all(is_valid(x) for x in list_something)

答案 1 :(得分:8)

您可以使用allmap

all_list_something = all(map(is_valid, list_something))

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

import itertools
all_list_something = all(itertools.imap(is_valid, list_something))

答案 2 :(得分:4)

由于问题询问如何在for循环中执行,我想我会包含这样的答案:

all_list_something = True
for item in list_something:
    if not is_valid(item):
       all_list_something = False
       break

但实际上,David或cmh的答案是要走的路。