繁体   English   中英

比较两个列表中的值,然后计算哪个列表更大

[英]Compare values in two lists, then tally which list was bigger

绝对的初学者在这里,第一个问题张贴在这个论坛上

我有两个列表,A 和 B。我需要将它们的值一一比较,看看哪个更大。

list_A = [10, 11, 13, 30, 22, 11, 10, 33, 22, 22]
list_B = [23, 66, 12, 43, 12, 10, 44, 23, 12, 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, 11, 10, 33, 22, 22]
list_B = [23, 66, 12, 43, 12, 10, 44, 23, 12, 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, 11, 13, 30, 22, 11, 10, 33, 22, 22]
list_B = [23, 66, 12, 43, 12, 10, 44, 23, 12, 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM