Python 在三个骰子列表中滚动两个骰子时寻找最大值

Python 在三个骰子列表中滚动两个骰子时寻找最大值,python,Python,我有以下函数,它将两(2)个六面骰子作为输入,并确定其中哪个骰子的数字较大注意骰子不一定有数字1-6。 def count_number_of_wins(die_1, die_2): die_1_larger = 0 die_2_larger = 0 for i in range(6): for j in range(6): if die_1[i] > die_2[j]: die_1_lar

我有以下函数,它将两(2)个六面骰子作为输入,并确定其中哪个骰子的数字较大注意骰子不一定有数字1-6。

def count_number_of_wins(die_1, die_2):

    die_1_larger = 0
    die_2_larger = 0

    for i in range(6):
        for j in range(6):
            if die_1[i] > die_2[j]:
                die_1_larger += 1
            elif die_1[i] < die_2[j]:
                die_2_larger +=1
        

    return (die_1_larger, die_2_larger)
此功能在此情况下失败:

[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]
我希望它返回-1,它返回0

有人能在
确定最佳模具()函数中看到问题所在吗

谢谢

def count_number_of_wins(die_1, die_2):

    die_1_larger = 0
    die_2_larger = 0

    for i in range(6):
        for j in range(6):
            if die_1[i] > die_2[j]:
                die_1_larger += 1
            elif die_1[i] < die_2[j]:
                die_2_larger +=1
        

    return (die_1_larger, die_2_larger)

def determine_best_die(dice):
    assert all(len(die) == 6 for die in dice)

    wins = [0] * len(dice)
    
    for i in range(len(dice)):
        for j in range(i+1, len(dice)):
            a, b = count_number_of_wins(dice[i], dice[j])
            if a > b:
                wins[i] = wins[i] + 1
            else:
                wins[j] = wins[j] + 1
    for i in wins:
        if (i == (len(dice)-1)):
            return wins.index(i)
    return -1
返回0,因为第一个骰子赢得第二个和第三个骰子,而原始失败的测试用例

print (determine_best_die([[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]]))

返回-1

预期输出是否为-1?看起来第二个骰子赢了第一个骰子,第三个骰子赢了第二个骰子,第一个骰子赢了第三个骰子,所以骰子没有自然顺序是的,该测试用例的预期值为-1。
print (determine_best_die([[3,3, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]])) 
print (determine_best_die([[1, 1, 6, 6, 8, 8], [2, 2, 4, 4, 9, 9], [3, 3, 5, 5, 7, 7]]))