如何在一个循环中从Python中的所有返回中得到最终结论?

如何在一个循环中从Python中的所有返回中得到最终结论?,python,python-3.x,loops,Python,Python 3.x,Loops,抱歉,问了个愚蠢的问题。 假设我想使用for循环比较两个列表的元素。现在我写道:- for i in range(10): if a[i] == b[i]: print('True') else: print('False') 其中a和b是两个列表 现在我将得到10个输出,它们要么是真的,要么是假的。我想要的是,如果它们都是真的,那么只打印真的,如果其中任何一个是假的,那么打印假的(真或假只打印一次) 这只是一个例子,我想用这个方法解决一

抱歉,问了个愚蠢的问题。 假设我想使用for循环比较两个列表的元素。现在我写道:-

for i in range(10):
     if a[i] == b[i]:
         print('True')
     else:
         print('False')
其中a和b是两个列表

现在我将得到10个输出,它们要么是真的,要么是假的。我想要的是,如果它们都是真的,那么只打印真的,如果其中任何一个是假的,那么打印假的(真或假只打印一次)

这只是一个例子,我想用这个方法解决一些其他的问题,也就是使用for循环


请提供帮助。

如果
a
b
包含“基元”(字符串、浮点、整数等),您甚至不需要进行元素级比较<代码>a==b就可以了

如果
a
b
包含实现
\uuuuu eq\uuu
的任意类的实例,这也会起作用

否则,这可以通过在相当可读的单行中组合、和生成器表达式来实现:

print(all(a_elem == b_elem for a_elem, b_elem in zip(a, b)))
请注意,如果列表包含任意类的实例,则该类仍应实现
\uuuuueq\uuuu

all
。一旦找到一对
a\u元素,b\u元素

其中
a_elem!=b_elem
并返回布尔值
False

如果出于某种奇怪的原因,您希望获取字符串
'True'
'False'
,您可以将
all
的返回值转换为字符串:

print(str(all(a_elem == b_elem for a_elem, b_elem in zip(a, b))))

上述内容的等效内容将写为:

if all([a[i] == b[i] for i in range(10)]):
    print("True")
else:
    print("False")
这相当于:

flag = True
for i in range(10):
    flag = flag and a[i] == b[i]  # or flag &= a[i] == b[i] # since bool's are essentially binary
if flag:
    print('True')
else:
    print('False')
具有适当边界检查的函数应为:

def compare_lists(a, b, N):
    if len(a) >= N <= len(b):
        return all([a[i] == b[i] for i in range(N)])
    else:
        print('Oops!')
def比较列表(a、b、N):

如果len(a)>=N如果有些是真的,有些是假的,会发生什么?@Jim“如果有假,打印假”应该回答that@JimFasarakisHilliard如果有些是真的,有些是假的,那么输出应该是假的。只有当全部为真时,才必须打印真