我没有关于如何做到这一点的线索。我有一个清单:
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。
有关实现这一目标的最佳途径的任何线索?
最诚挚的问候,
答案 0 :(得分:10)
对于某些人来说,生成器理解可以提高地图的可读性。
all_list_something = all(is_valid(x) for x in list_something)
答案 1 :(得分:8)
您可以使用all
和map
:
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的答案是要走的路。