2

我不知道如何做到这一点。我有一个清单:

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。如果列表中的所有数字都是整数,则值为 True。如果只有一个不是 Integer,则该值为 false。

关于实现这一目标的最佳方法的任何线索?

最好的祝福,

4

3 回答 3

10

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

all_list_something = all(is_valid(x) for x in list_something)
于 2013-01-06T17:13:20.553 回答
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))
于 2013-01-06T17:11:30.703 回答
4

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

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

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

于 2013-01-06T17:15:01.607 回答