gpt4 book ai didi

python - 如何在Python循环中从所有返回中获得最终结论?

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:02 27 4
gpt4 key购买 nike

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

for i in range(10):
if a[i] == b[i]:
print('True')
else:
print('False')

其中 a 和 b 是两个列表。

现在我将得到 10 个输出,要么为真,要么为假。我想要的是,如果它们全部为 true,则仅打印 True,如果其中任何一个为 false,则打印 false(True 或 False 仅打印一次)。

这只是一个示例,我想将此方法用于其他一些问题,并且也使用 for 循环。

请帮忙。

最佳答案

如果 ab 包含“原始”(字符串、 float 、整数等),您甚至不需要进行逐元素比较。 a == b 就可以了。

如果ab包含实现__eq__的任意类的实例,这也将起作用。

否则,这可以通过组合 all 来实现, zip以及一个相当易读的单行生成器表达式:

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

请注意,如果列表包含任意类的实例,则该类仍应实现 __eq__

全部short-circuited 。一旦找到一对 a_elem, b_elem

就会停止

其中 a_elem != b_elem 并返回 bool 值 False

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

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

关于python - 如何在Python循环中从所有返回中获得最终结论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47697073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com