如何解决比较两个列表中的值,然后计算哪个列表更大
绝对的初学者,第一个问题发布在此论坛上
我有两个列表,A和B。我需要一个一个地比较它们的值,看看哪个更大。
list_A = [10,11,13,30,22,10,33,22]
list_B = [23,66,12,43,44,23,17]
在第一对(10/23)上,列表B更大。然后,我想对一个称为B_bigger的变量进行+1计算,反之亦然,如果A列表中的值较大,则对A进行+1计算。
结果应为:
A_bigger = 6
B_bigger = 4
非常感谢
解决方法
我们可以尝试使用zip
以及两个输入列表的列表理解来生成大于/小于的布尔列表。然后,对每个列表求和以生成您要查看的计数:
A_bigger = sum([i > j for i,j in zip(list_A,list_B)])
B_bigger = len(list_A) - A_bigger
print("A_bigger = " + str(A_bigger))
print("B_bigger = " + str(B_bigger))
此打印:
A_bigger = 6
B_bigger = 4
数据:
list_A = [10,11,13,30,22,10,33,22]
list_B = [23,66,12,43,44,23,17]
,
为此,您需要压缩这些列表。 例如:
A_bigger = 0
B_bigger = 0
for a,b in zip(list_A,list_B):
if a > b:
A_bigger += 1
if b > a:
B_bigger += 1
,
尝试一下:
a_big = 0
b_big = 0
for x,y in zip(list_A,list_B):
if x > y:
a_big += 1
if y > x:
b_big += 1
print("A_Bigger:",a_big)
print("B_Bigger:",b_big)
,
每个人都已经给出了一个不错的zip
版本,因此这里是一个使用numpy
的版本。
import numpy as np
list_A = [10,17]
a = np.array(list_A)
b = np.array(list_B)
# Find a difference between the two lists
diff = a - b
# Compare to see how many result in a positive/negative difference
# anything >0 will be because A is greater,anything <0 is because B is greater
# anything ==0 is because the values are the same
a_greater = sum(diff > 0) # 6
b_greater = sum(diff < 0) # 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。