Skip to main content
 首页 » 编程设计

python之在 For 循环中比较列表中的值; Python

2025年05月04日9thcjp

使用 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