gpt4 book ai didi

python - 在Python中比较两个列表中的元素

转载 作者:行者123 更新时间:2023-12-01 08:53:05 25 4
gpt4 key购买 nike

我有一个函数可以比较两个列表的元素并返回它们之间的差异。我有两个版本。第一个有效,但第二个无效。第二个函数有什么问题吗?输入 a 和 b 是两个长度相同的列表。

def compareLists(a, b):
A = sum([1 if i > j else 0 for i, j in zip(a, b)])
B = sum([1 if j > i else 0 for i, j in zip(a, b)])
return (A, B)

def compareLists(a, b):
A = sum([1 for i in range(0, len(a)) if a[i] > b[i] else 0])
B = sum([1 for i in range(0, len(a)) if b[i] > a[i] else 0])
return (A, B)

例如输入和输出:a = [1, 2, 3,4]; b = [0, -2, 5, 6]; 输出 = (2, 2)

最佳答案

第二个代码中不需要三元运算符 (if-else),因为在列表理解中使用 if 表达式可以过滤输出:

A = sum([1 for i in range(0, len(a)) if a[i] > b[i]])
B = sum([1 for i in range(0, len(a)) if b[i] > a[i]])

像在第二个代码中那样添加 else 会使语法无效。

为了完整起见,正如 @wim 在评论中指出的那样,在第一个代码中没有必要使用三元运算符,因为 Python 中的 bool 值只是 10< 的整数,因此您可以直接输出比较运算符返回的 bool 值:

A = sum([i > j for i, j in zip(a, b)])
B = sum([j > i for i, j in zip(a, b)])

关于python - 在Python中比较两个列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52980592/

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