使用 Python 2.7。
我有两个不同的列表,A 和 B(经过简化以使解释更清楚)。
A = [1, 2, 4, 3, 5]
B = [2, 0, 3, 2, 1]
我希望能够比较每个列表的位置值 ex- A[1] v B[1]- 并汇总 A 较大的实例(A“获胜”),当两个值相同(A“关系”),以及 B 较大的情况(A“损失”)。
为了让事情变得更复杂一点,我还使用 random.shuffle() 每次通过 for 循环随机化列表的顺序。
我首先尝试使用:
def listComp(listA, listB):
Awins = 0
Aties = 0
Alosses = 0
for i in range(0, whatever):
random.shuffle(listA)
random.shuffle(listB)
if A[0] > B[0]:
Awins += 1
elif A[0] == B[0]:
Aties += 1
elif A[0] < B[0}:
Alosses += 1
然后在每个 if 语句中,编写额外的 if 语句以说明所有可能的变化。显然,随着列表规模的增长,这会变得非常耗费人力。一定有更简单的方法,对吧?
请您参考如下方法:
听起来像你想要的zip :
def compare(A,B):
Awins = 0
Aties = 0
Alosses = 0
for i in range(0, whatever):
random.shuffle(listA)
random.shuffle(listB)
for a,b in zip(A,B):
if a > b:
Awins += 1
elif a == b:
Aties += 1
else:
Alosses += 1
